分享:网页文件内容查找小工具
因工作需要,要将包含某些“关键词”的网页文件从磁盘中查找出来。在网上找了很久都没有找到顺手的工具,所以就动手写了一个。“独乐乐不如众乐乐”,分享给大家。Python语言初级,见笑了!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | import os,re #获取当前目录下所有文件名及目录名 def pri_all_file(dir): names = os.listdir(dir) li = [] extension = ['.shtml','.html','.htm'] #定义要查找的文件类型 for name in names: full_name = os.path.join(dir,name) #拼接成完整路径 if os.path.isdir(full_name): #li.append(full_name) li.extend(pri_all_file(full_name)) #递归遍历子目录下文件及目录,并一次性加入原列表中 else: #print(full_name) if os.path.splitext(name)[-1] in extension: #取文件扩展名进行比较 li.append(full_name) return li #将列表中的内容一行行写入文件 def write_result_file(result): ls = os.linesep #行分隔符 filename = "result.txt" #保存结果的文件,在.py文件所在的目录中 try: fobj = open(filename,'w') except IOError as e: print("file open error:",e) else: fobj.writelines('%s%s' % (txt,ls) for txt in result) fobj.close() #程序主体 if __name__ == "__main__": dir_name = '/wwwroot' #定义要查找的文件夹 keyword = ['张三' ,'李四'] #定义要查找的关键词 findfilelist = [] #找到的文件列表 filelist = pri_all_file(dir_name) for filepath in filelist: f = open(filepath, encoding='utf-8') try: t = f.read() except: f = open(filepath, encoding='gbk', errors='ignore') t = f.read() f.close() pattern = re.compile('<body[\s\S]*?</body>', re.IGNORECASE) #定义一个取出body内容的正则表达式,忽略大小写 result = pattern.findall(t) #进行匹配,找到所有满足条件的 content = "".join(result) #列表转化为字符串 if len(content) != 0: for k in keyword: #循环关键词 if content.find(k) != -1: print('\r[%s] %s' % (k,filepath)) findfilelist.append('['+k + '] ' + filepath) #找到则输出文件地址 # if os.path.isfile(filepath): #判断是否是为文件(文件是否存在) # os.rename(filepath, filepath + '_bak') #修改文件名 print('\r%s' % (filepath), end = '') write_result_file(findfilelist) #将查找结果写入result.txt文件中 |
原创文章如转载,请注明:转载自无花果的原创博客 [ http://wuhuaguo.lifeskillcn.com ]