为什么跳过“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
答案 0 :(得分:2)
它不起作用的原因是因为你的if条件评估为false。
除了马克·拜尔斯(Mark Byers)所提出的想法之外,还有一个想法:
act_file
是否可能是文件对象,而不是代表文件名的字符串?
如何创建act_file?
如果您通过类似于:
的方式获得它act_file = open("Languages.csv")
然后你将无法按照你所写的方式检查它的名字,因为act_file确实是一个文件对象。
如果act_file是文件对象,编写if语句的正确方法是:
if act_file.name == "Languages.csv":
答案 1 :(得分:0)
即使你认为 应该if
,False
中的情况也可能导致true
。
这可能是由于区分大小写 - 如果您在Windows上,文件名将适用于任何大小写,但if
中的字符串比较将无法比较为真,如果是任何字母的情况act_file
变量与Languages.csv
字符串中的变量不同。
要解决此问题,我建议您将if
行更改为:
if act_file.lower() == "languages.csv":