python实现递归查找某个路径下所有文件中的中文字符
本文实例为大家分享了python实现递归查找某个路径下所有文件中的中文字符,供大家参考,具体内容如下
#-*-coding:utf-8-*-
#@description:
#@author:
#@created:2018/7/21
importre
importsys
importos
reload(sys)
sys.setdefaultencoding("utf8")
deftranslate(str):
out=set()
line=str.strip().decode('utf-8','ignore')#处理前进行相关的处理,包括转换成Unicode等
p2=re.compile(ur'[^\u4e00-\u9fa5]')#中文的编码范围是:\u4e00到\u9fa5
zh="".join(p2.split(line)).strip()
#zh="\n".join(zh.split())#dsds经过相关处理后得到中文的文本
forsinzh.split():
out.add(s)#经过相关处理后得到中文的文本
returnout
defextract_file(path):
result=set()
try:
f=open(path)#打开文件
lines=f.readlines()
forlineinlines:
string=translate(line)
ifstring:
result.update(string)
exceptExceptionase:
pass
returnresult
defextract(path):
result=set()
files=os.listdir(path)
forfileinfiles:
ifnotfile.startswith("."):
ifnotos.path.isdir(path+"/"+file):#判断是否是文件夹,不是文件夹才打开ssgsg判断是否是文件夹,不是文件夹才打开
sub_file=extract_file(path+"/"+file)
ifsub_file:
result.update(sub_file)
else:
printfile
child=extract(path+"/"+file)
ifchild:
result.update(child)
returnresult
if__name__=='__main__':
path="/Users/common"
result=extract(path)
res_file=open("result.txt","w")
forsinresult:
res_file.write(s+"\n")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。