utg-8报错
来源:2-9 查找含有指定内容的文件
慕后端7217803
2024-09-23 18:43:50
为什么我在执行以下程序:想要搜索包含文件内容的文件,并且以列表的形式返回包含查找包含搜索关键字的文件,会出现utg-8报错?
# coding: utg-8 # coding: utf-8 # 获取当前路径下所有内容 # 判断每个内容类型 (是文件夹还是文件) # 递归 import glob path = glob.os.path.join(glob.os.getcwd(), '*') final_result = [] def search(path, target): #todo:两个未知参数一个是文件路径,另外一个是希望查找的文件名称 result = glob.glob(path) for data in result: if glob.os.path.isdir(data): #todo:由于判断的是文件夹,而文件夹里面是会包含文件的,所以在文件夹后面寻找target _path = glob.os.path.join(data, '*') #todo:要在进行glob.os.path.join(data, '*')来筛选里面的文件 # print('%s is filepath' % data) search(_path, target) #todo:在search函数中再次使用search,为递归 else: f = open(data, 'r') try: #todo:由于zip文件是不可读类型,执行程序会报错 content = f.read() except: print('data read failed %s' % data) f.close() continue if target in content: final_result.append(data) f.close() return final_result if __name__ == '__main__': result = search(path, target='years') print(result)
1回答
好帮手慕小猿
2024-09-23
同学,你好!同学第一行定义文件编码为utf-8的代码写错了,将字母f 写成了g所以报错。第三行设置编码是正确的,同学删除掉第一行代码即可
祝学习愉快~