最近这几天,一直在学习python,发现python在脚本处理方面有很多的便捷性,这点要比java要好,但是文档找起来并不是那么方便,刚上手,有点生疏。
以下代码是python用来处理文件夹遍历的脚本(OS : ubuntu 11.04 python:2.7)
#coding:utf-8
#iterator folder use python
import os
CODING = 'gb2312'
def iteratorFolder(fall,fileName):
files = os.listdir(fileName)
sep = os.path.sep
for name in files:
fullname = fileName + sep + name
if os.path.isdir(fullname):
iteratorFolder(fall,fullname)
else :
pass
#fall.append(unicode(fullname,CODING))
#fall.append(fullname)
fall.append(unicode(fullname,CODING))
#fall.append(fullname)
return fall
def main():
fall = []
fileName = '/home/gavin/projects/email/mail_project_doc'
file = open('log.log','w')
fall = iteratorFolder(fall,fileName)
for f in fall:
print f
print f.encode(CODING)
file.writelines(f+'\n')
file.close()
#print file.name
#print len(fall)
if __name__ == '__main__':
main()
相对比的java代码如下:
package com.sohu.test;
import java.io.*;
import java.util.*;
public class IteratorFolder {
public static List<String> iteratorFolder(List<String> list,String fileName) throws UnsupportedEncodingException{
File file = new File(fileName);
File[] files = file.listFiles();
String separator = File.separator;
for(int i = 0 ; i < files.length ; i ++){
File f = files[i];
String fname = f.getName();
String fullName = fileName + separator + fname;
if(f.isDirectory()){
iteratorFolder(list,fullName);
}
list.add(fullName);
}
return list;
}
public static void main(String[] args)throws Exception {
// check file
String name = "/home/gavin/projects/email/test";
List<String> list = new ArrayList<String>();
list = iteratorFolder(list,name);
File file = new File("log_java.log");
FileOutputStream fos = new FileOutputStream(file);
PrintWriter out = new PrintWriter(new OutputStreamWriter(fos));
for(String fullName : list){
out.write(fullName+"\n");
}
out.close();
fos.close();
System.out.println(file.getAbsolutePath());
System.out.println(list.size());
}
}
感觉还是python在文件处理上比java要方便些!在跟同事看了之后,给了一个更简单的处理方式os.walk,这个可以直接遍历文件夹目录做处理,如:
#file = open(fileName,'r')
files = os.walk(fileName)
for f in files:
for ff in f:
print ff
可参考os.walk用法:http://www.cnblogs.com/phonefans/archive/2008/10/15/1311707.html
后续再做python的脚本优化!(文件校验判断,文件的参数传入等)
分享到:
相关推荐
本文实例为大家分享了python实现遍历文件夹修改文件后缀的具体代码,供大家参考,具体内容如下 用法 python Modifer.py ./ -fp java xml # coding:utf-8 # Build by LandGrey 2016-05-27 import os import sys #...
Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Java写了一个写入、创建、复制、重命名文件要将近60行代码; 不过简洁的代价是牺牲了一点点运行速度,但随着硬件性能的提升,运行速度的差异会...
没找不到合适工具,就写了这个脚本,遍历指定目录,查找*.java文件,删除其中/* */之间,及// 至行末的内容。 (用之前要改改其中的路径): #!D:\Python32 # 过滤JAVA程序中的注释 # 如果字符串中有注释符号的话会...
文件遍历 文件上传 XML注入 JSON注入 命令注入 LDAP注入 PHP Python Node.js 去 ASP经典版 :check_mark: :check_mark: ASP.NET :check_mark: Java JavaScript Ruby Ruby Perl HTML HTML5 VB脚本 ...
本文与《【Java】读取其下所有文件夹与文件的路径》 (点击打开链接)为姊妹篇,主要讲述Python对于文件信息的读取操作。 Python对于文件信息的读取操作,在其固有类os中。 下面以读取F盘下的所有文件夹作为例子说明...
Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Java写了一个写入、创建、复制、重命名文件要将近60行代码; 不过简洁的代价是牺牲了一点点运行速度,但随着硬件性能的提升,运行速度的差异会...
python 的fnmatch 还真是省心,相比于 java 中的FilenameFilter ,真是好太多了,你完成不需要去实现什么接口。 fnmatch 配合 os.walk() 或者 os.listdir() ,你能做的事太多了,而且用起来相当 easy。 # coding: ...
基于Java和Python的爬虫项目实战源码.zip 自己动手写网络爬虫》,并基于Python3和Java实现 为什么采用宽度优先搜索策略? 深度优先遍历可能会在深度上过“深”而陷入“黑洞”; 重要的网页往往距离种子网页比较近,...
语言之争由来已久,下面做一些IO实验(遍历9G多的文件,批量删除),尽量用事实来比较谁优谁劣。操作系统:win7 64 位,文件包大小:9.68G。 一、语言:C# 开发环境:vs 2013 代码总行数:43行 耗时:7秒 代码...
tinypng 图片压缩脚本,自动遍历项目图片,并原地替换,单个 node 文件,无需依赖 npm 包,下载单文件即可使用 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言...
学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...
java版oa源码下载 1、说明 该工具主要用于指纹识别后,进行漏洞精准扫描。 2、命令使用 pocscan.exe -h //查看帮助 pocscan.exe -l //列举可用的检测列表 poccan.exe -m smart -f url.txt //通过智能模式识别相应的...
在一个测试案例中,遍历10,000条记录的文件大约需要14秒。 相比之下,JAVA avro SDK可以在1.9秒内读取相同的文件。 fastavro库的编写旨在提供与Java库不相上下的性能。 对于常规的CPython, fastavro使用C扩展名,...
单击工具栏中的“导入Excel”按钮,打开文件对话框选择文件夹,如XS1文件夹,系统将遍历该文件夹中的*.xls文件,并且将文件添加到列表区,效果如图2所示。 图2 导入Excel文件 (2)提取列数据。单击工具栏中的...
实现原理PackerNg原理优点使用APK注释字段保存渠道信息和MAGIC字节,从文件末尾读取渠道信息,速度快实现为一个Gradle Plugin,支持定制输出APK的文件名等信息,方便CI集成提供Java版和Python的独立命令行脚本,不...
单击工具栏中的“导入Excel”按钮,打开文件对话框选择文件夹,如XS1文件夹,系统将遍历该文件夹中的*.xls文件,并且将文件添加到列表区,效果如图2所示。 图2 导入Excel文件 (2)提取列数据。单击工具栏中的...
在VS2010软件,64位系统中,调用已编译好的GDAL库,实现两矢量叠加,相交,合并,更新等函数功能。文件存储在shpManage文件夹下,输出结果也在此文件夹下。
确保补丁中不包含任何已编译的二进制文件。 提交您的更改: git commit -am 'Add some feature' 。 经过 推送到分支: git push origin my-new-feature在发送 PR 时,请确保您遵循每个 PR 规则一个问题。 提交拉取...
Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。 Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。 GridFS是...