Python:For循环中的循环跳过

时间:2011-12-13 22:55:54

标签: python loops if-statement for-loop skip

为什么跳过“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

2 个答案:

答案 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)

即使你认为 应该ifFalse中的情况也可能导致true

这可能是由于区分大小写 - 如果您在Windows上,文件名将适用于任何大小写,但if中的字符串比较将无法比较为真,如果是任何字母的情况act_file变量与Languages.csv字符串中的变量不同。

要解决此问题,我建议您将if行更改为:

if act_file.lower() == "languages.csv":