python .find
场景:python金莲本-find
python小脚本-find
谢谢,我当时还不知道这个-n参数
python小脚本-find
#!/usr/bin/python #ecoding=utf-8 ''' 搜索某种文件内含有某关键字的文件名和文件行 由于使用了python2.2,没有os.walk函数,自己写了 使用命令模式 ''' import os,re filenamerep='.*jsp$'#文件匹配模式 path='/usr/local/tomcat/webapps/ROOT'#搜索路径,路径为绝对路径 contentrep=r'\bStatement\b'#每行文件要搜索的内容 result={}#匹配的结果数据存在map中,以文件的绝对路径名为key,vlaue为list,匹配的行数和内容为元祖的list, logfile='searchresult.log' def ismatch(path): global filenamerep if re.search(filenamerep, path): return True else: return False #版本太低,不能使用enumerate def handlefile(path): '''对文件的每行进行处理''' global result num=0 for line in open(path,'r'): num=num+1 if re.search(contentrep, line): if not result.get(path):#初始化列表 result[path]=[] result[path].append((num,line)) def findfile(dir): '''找出符合规则的结果''' for i in os.listdir(dir): i=os.path.join(dir,i)#绝对路径 if os.path.isfile(i): if ismatch(i): handlefile(i) if os.path.isdir(i): findfile(i) def log(): '''记录日志''' global logfile log=open(logfile,'w') for key in result.keys(): li=result[key] log.write("文件:"+key+os.linesep) for i in li: log.write(' 第'+str(i[0])+'行 '+i[1]+os.linesep) if __name__=='__main__': if os.name=='nt': print '在windows下,请注意路径转义' findfile(path) log() else: findfile(path) log()
1 楼
cloverprince
2011-07-17
是“grep -r -n”吧
2 楼
qiuboboy
2011-07-18
cloverprince 写道
是“grep -r -n”吧
谢谢,我当时还不知道这个-n参数