修复 try 循环总是去 except - else

Fix try loop always going for except - else

提问人:Subham Pal 提问时间:10/2/2023 最后编辑:OCaSubham Pal 更新时间:10/6/2023 访问量:31

问:

在这个“try,except,else”循环中,基本上我不明白为什么它总是会选择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)
python pandas try-catch read-csv

评论

0赞 OCa 10/4/2023
请阅读如何询问,并根据最小可重现示例修剪代码。您应该只发布相关部分。另外,请检查代码缩进。

答:

0赞 OCa 10/4/2023 #1

(发布的代码没有缩进,所以我编辑了您的问题以恢复它,并将其修剪到相关部分。

您正确地描述了此 try 循环意味着最好从主文件words_to_learn.csv加载字典法语,但在没有所述文件的情况下,它将求助于读取备份文件french_words.csv

请注意,如果在读取words_to_learn.csv时出现错误,则无法很好地覆盖该错误,因为不会定义数据。但事实并非如此,因为您没有报告此类错误。

现在,为什么脚本总是求助于从备份加载呢? 请验证主文件的存在,并在您的问题中报告它,方法是在您的代码中插入以下内容:

import os.path as osp

primary_file = "data/words_to_learn.csv"

print(osp.isfile(primary_file))

如果返回 False,则您有答案。

如果为 true,那么我们将继续讨论。