在这个“try, except,else”循环中,基本上我不明白为什么它会always选择french_words.csv。 IIUC,如果words_to_learn.csv存在,那么它将使用该csv文件,如果不存在,则使用french_words.csv。
import pandas
french = {}
try:
data = pandas.read_csv("data/words_to_learn.csv")
except FileNotFoundError:
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)
发布的代码没有缩进。我认为它对你来说是正确的,只是在将其粘贴到此处时迷失了。它应该是这样的:
try:
data = pandas.read_csv("data/words_to_learn.csv")
except FileNotFoundError:
org_data = pandas.read_csv("data/french_words.csv")
french = org_data.to_dict(orient="records")
else:
french = data.to_dict(orient="records")
您正确地描述了此尝试循环意味着字典french最好从主文件words_to_learn.csv加载,但如果没有所述文件,它将改为读取备份文件french_words.csv .
请注意,如果在读取 words_to_learn.csv 时出现错误,则不会很好地覆盖,因为 data 不会被定义。但事实并非如此,因为您没有报告此类错误。
现在为什么脚本总是从备份中加载? 请验证主文件是否存在,并在您的问题中报告它,方法是将其插入到您的代码中:
import os.path as osp
primary_file = "data/words_to_learn.csv"
print(osp.isfile(primary_file))
如果返回 False,你就有答案了。
如果属实,那么我们继续讨论。