Python:For循环跳过如果
问题描述:
为什么行“old_langpacks.append(act_item)”被跳过? 当我只使用for循环,没有if时,它就起作用。Python:For循环跳过如果
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
的条件导致False
,即使你认为它应该是true
。
这可能是由于区分大小写 - 如果你是在Windows上,文件名称将与任何套管工作,但在你的if
字符串比较不会比真正的,有信在act_file
变量的情况下不同于它们在Languages.csv
字符串中的方式。
若要解决此我建议你改变if
行:
if act_file.lower() == "languages.csv":
答
它不工作的原因是因为你如果条件评估为假。
除了什么马克拜尔斯提出一个想法浮现在脑海:
难道act_file
是一个文件对象,而不是它代表的文件名的字符串?
act_file是如何创建的?
如果通过类似的东西得到它:
act_file = open("Languages.csv")
,那么你将无法检查它的名字你写的方式,因为act_file确实是一个文件对象。
如果act_file是一个文件对象,写你的if语句是正确的做法:
if act_file.name == "Languages.csv":
嗯...也许是因为act_file不是 “Languages.csv”?你尝试过调试吗? – 2011-12-13 22:57:57