看报错最后两行,倒数第一行是告诉你为啥错,翻译过来就是没找到"新建文本文档.txt";倒数第二行是出错的语句 f = open(each,encoding='gbk',errors='ignore'),然后回过头看下你的代码
def serch(path,keyword):
for each in os.listdir(path):
each_file = os.path.join(path,each)
if os.path.splitext(each) == '.txt':
f = open(each,encoding='gbk',errors='ignore')
............
从条件判断语句可知,each确实是一个文本文档的名字,而且从报错情况可以看出这个文档叫"新建文本文档.txt",那么问题在哪,我们看下你代码中的几个文件路径
def serch(path,keyword):
for each in os.listdir(path): # each是os.listdir方法返回的列表中的文件和文件夹名,如果直接拿来用是相对路径
each_file = os.path.join(path,each) # each_file 是你用path和each拼接出来的绝对路径
if os.path.splitext(each) == '.txt':
f = open(each,encoding='gbk',errors='ignore') #这句报错,说明用相对路路径读取文件出错,问题在哪很明显了吧
............
PS:同样的问题在后面的代码中也有一个地方需要修改,自己思考一下把。加油~~~ f = open(each,encoding='gbk',errors='ignore')
# 改成
f = open(each_file,encoding='gbk',errors='ignore')
参数传错了。
页:
[1]