为什么会跳过“old_langpacks.append(act_item)”行?当我只使用 for 循环而不使用 if 时,它就可以工作。
if act_file == "Languages.csv":
temp_list = open(act_file,"r")
for act_item in temp_list:
old_langpacks.append(act_item)
else:
pass
为什么会跳过“old_langpacks.append(act_item)”行?当我只使用 for 循环而不使用 if 时,它就可以工作。
if act_file == "Languages.csv":
temp_list = open(act_file,"r")
for act_item in temp_list:
old_langpacks.append(act_item)
else:
pass
它不起作用的原因是因为您的 if 条件评估为假。
除了马克·拜尔斯(Mark Byers)提出的建议之外,我还想到了一个想法:
是否有可能act_file
是一个文件对象,而不是代表文件名的字符串?
act_file 是如何创建的?
如果您通过以下方式获得它:
act_file = open("Languages.csv")
那么您将无法按照您编写的方式检查其名称,因为 act_file 确实是一个文件对象。
如果 act_file 是文件对象,则编写 if 语句的正确方法是:
if act_file.name == "Languages.csv":
尽管您认为应该是,但您的状况可能if
正在导致。False
true
这可能是由于区分大小写 - 如果您在 Windows 上,文件名将适用于任何大小写,但如果变量if
中任何字母的大小写与它们的方式不同,则您的字符串比较不会比较真实act_file
在Languages.csv
字符串中。
要解决此问题,我建议您将if
行更改为:
if act_file.lower() == "languages.csv":