鱼C论坛

 找回密码
 立即注册
查看: 1575|回复: 3

[已解决]Python 30讲第4题 自己写的程序有不知名错误求助!

[复制链接]
头像被屏蔽
发表于 2021-11-20 17:45:49 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-20 18:01:44 | 显示全部楼层    本楼为最佳答案   
本帖最后由 lightninng 于 2021-11-20 18:02 编辑

看报错最后两行,倒数第一行是告诉你为啥错,翻译过来就是没找到"新建文本文档.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)[1] == '.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)[1] == '.txt':                     
            f = open(each,encoding='gbk',errors='ignore')         #这句报错,说明用相对路路径读取文件出错,问题在哪很明显了吧
............


PS:同样的问题在后面的代码中也有一个地方需要修改,自己思考一下把。加油~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-20 18:08:17 | 显示全部楼层
 f = open(each,encoding='gbk',errors='ignore')

# 改成
 f = open(each_file,encoding='gbk',errors='ignore')

参数传错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-11-20 20:03:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 09:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表