- A+
所属分类:Seay信息安全博客
显示不全请点击全屏阅读
分享一个在文件中快速查找字符串的脚步,根据 【python源码:windows类似linux wc统计文件行数python脚本】 稍微改的,速度很快
# -*- coding: GBK -* # Author: Seay # Blog :www.cnseay.com import os,sys,re findstr=''; def func_findstr(filepath): thefile=open(filepath, 'rb') while True: buffer = thefile.read(104857600) if not buffer: break for match in re.findall('\n.*'+findstr+'.*\n',buffer): print "Found in "+filepath+" %s" % match print '' thefile.close() def func_walks(path): for root, dirs, files in os.walk(path): for f in files: f = os.path.join(root, f) func_findstr(f) def filterstr(str): str = str.replace('.','\.').replace('[','\[').replace(']','\]').replace('$','\$').replace('\\','\\\\') return str.replace('(','\(').replace(')','\)').replace('{','\{').replace('}','\}').replace('^','\^') if __name__ == '__main__': if len(sys.argv)>=4 and (sys.argv[1]=='-f' or sys.argv[1]=='-d'): if sys.argv[1]=='-f' and os.path.isfile(sys.argv[2]): findstr = filterstr(sys.argv[3]) func_findstr(sys.argv[2]) elif sys.argv[1]=='-d' and os.path.exists(sys.argv[2]): findstr = filterstr(sys.argv[3]) func_walks(sys.argv[2]) else: print '-- 参数错误' elif len(sys.argv)==2: findstr = filterstr(sys.argv[1]) print func_walks(os.getcwd()) else: print '-- 参数说明 :' print ' 1. '+sys.argv[0]+ ' -f' +' filename "string" \t在指定文件查找字符' print ' 2. '+sys.argv[0]+ ' -d' +' directory "string" \t在指定目录(包括子目录)下的所有文件查找字符串' print ' 3. '+sys.argv[0]+ ' "string" \t在当前目录(包括子目录)下的所有文件查找字符串'
Tags:
如果您喜欢我的博客,欢迎点击图片定订阅到邮箱 也可以点击链接【订阅到鲜果】
如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡