有没有关于我没有得到的os模块的东西?

时间:2011-06-05 05:51:59

标签: python syntax file operating-system

在过去的半小时里,我一直试图弄清楚这段代码有什么问题。它应该非常直接。此时我几乎已将其复制出文档。但无论我尝试什么,我都会收到语法错误。

以下是代码:

def addfiles(folder):
    foldercont = [os.path.normcase(f) for f in os.listdir(folder)]
    for x in foldercont:
        if os.path.isfile(x) == True:
            files.append(os.path.realpath(x)
        if os.path.isdir(x) == True:
            addfiles(os.path.realpath(x))

每当我运行它时,我都会收到错误

 if os.path.isdir(x) == True:
                           ^
 SyntaxError: invalid syntax

但是,如果我在交互式解释器中编写相同的代码,它运行正常。

这个方法可以简单地不在if循环中使用吗?

感谢您的帮助。在这一点上我真的很沮丧......嘿。

2 个答案:

答案 0 :(得分:11)

这一行有一个括号:

files.append(os.path.realpath(x)
                                ^

Python抱怨True:位,因为它期待像

这样的语句
(x if condition else y)

正如jcomeau_ictx所说,在检查布尔值时你也应该忽略== True

if x:
    do_something
if not y:
    do_something_else

答案 1 :(得分:1)

你错过了前一行的括号。