#-*- coding:utf-8 -*-
import os
for parent,dirnames,filenames in os.walk('/home/xxxx/src'): #遍历src下的文件
for filename in filenames: #循环文件列表
if ".java" in filename: #找出所以后缀是.java的文件
javafile = open(os.path.join(parent,filename)) #得到该文件的绝对路径并打开文件
for line in javafile.readlines(): #读取文件每一行,并循环
if 'package' in line: #行中有‘package’字样 则不输出
print 'Not write package'
elif 'import' in line: #行中有‘import’字样 则不输出
print 'Not write import'
else:
open('myGrep.txt','a').write(line) #将该行写入指定名称为'myGrep.txt'的文件中去
效果还不错,比用java写快捷多了。
参考: http://www.iyunv.net/article/15459.htm
http://www.phpfans.net/article/htmls/201004/Mjg0MDAy.html
2. 另外附上一个遍历文件夹下所有文件夹包括文件的方法:
#主函数,遍历文件夹并输出文件夹和文件的路径信息保存到指定的文本中
for root,dirs,files in os.walk('/home/neptune/Dropbox'):
#print root,dirs,files
#open('mycd.cdc','a').write("%s %s %s" % (root,dirs,files))
export="\n"+root+"\n"
for d in dirs:
export+="-d "+root+_smartcode(d)+"\n"
for f in files:
export+="-f %s %s \n" % (root,_smartcode(f))
export+= "="*70
open('mycd.cdc','a').write(export)
p.s. chardet包需要下载安装。地址是:http://chardet.feedparser.org/download/
p.p.s 在Python中,如果要显示中文字符,简单做法是把字符串先转化为unicode,然后在有unicode对象转化成任意其他系统可显示的编码。