疑问:try-except-else循环为何总是读取french_words.csv文件?
问题分析与解决
你的代码逻辑本身是成立的:try块尝试读取words_to_learn.csv,触发FileNotFoundError时就读取french_words.csv,否则使用words_to_learn.csv的数据。但程序总是走except分支,大概率是路径或文件存在性问题,以下是具体排查方向:
排查步骤
- 确认当前工作目录
程序的相对路径基于运行时的当前工作目录,而非代码文件所在目录。可以在代码开头加入以下代码查看当前路径:
import os print(os.getcwd())
检查输出的目录下是否存在data文件夹,且data内确实有words_to_learn.csv。
- 检查文件名与路径拼写
- 确认文件名完全一致:比如是否误写为
word_to_learn.csv,或者大小写不匹配(Linux/macOS区分文件名大小写,Windows不区分)。 - 确认
data文件夹存在,且路径层级正确(比如是否多/少了一层目录)。
- 捕获所有异常查看详情
暂时修改except块,捕获所有异常并打印错误信息,确认具体报错原因:
import pandas french = {} try: data = pandas.read_csv("data/words_to_learn.csv") except Exception as e: print(f"读取失败原因: {e}") org_data = pandas.read_csv("data/french_words.csv") french = org_data.to_dict(orient="records") else: french = data.to_dict(orient="records") print(french)
如果报错不是FileNotFoundError,说明文件存在但读取时出错(比如文件损坏、格式不符合CSV规范),需要修复words_to_learn.csv文件。
- 尝试绝对路径
用文件的绝对路径替代相对路径测试,比如:
data = pandas.read_csv("/Users/yourname/project/data/words_to_learn.csv")
如果能正常读取,说明相对路径的工作目录问题导致找不到文件。
内容的提问来源于stack exchange,提问作者Subham Pal
相关产品推荐
相关产品推荐

