0

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

2 回答 2

2

它不起作用的原因是因为您的 if 条件评估为假。

除了马克·拜尔斯(Mark Byers)提出的建议之外,我还想到了一个想法:

是否有可能act_file是一个文件对象,而不是代表文件名的字符串?

act_file 是如何创建的?

如果您通过以下方式获得它:

act_file = open("Languages.csv")

那么您将无法按照您编写的方式检查其名称,因为 act_file 确实是一个文件对象。

如果 act_file 是文件对象,则编写 if 语句的正确方法是:

if act_file.name == "Languages.csv":
于 2011-12-13T23:06:38.617 回答
0

尽管您认为应该是,但您的状况可能if正在导致。Falsetrue

这可能是由于区分大小写 - 如果您在 Windows 上,文件名将适用于任何大小写,但如果变量if中任何字母的大小写与它们的方式不同,则您的字符串比较不会比较真实act_fileLanguages.csv字符串中。

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

if act_file.lower() == "languages.csv":
于 2011-12-13T23:00:23.983 回答