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

dan*_*nem 1 python syntax operating-system file

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

这是代码:

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))
Run Code Online (Sandbox Code Playgroud)

每当我运行它,我收到错误

 if os.path.isdir(x) == True:
                           ^
 SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ste*_*zzo 11

这一行有一个括号:

files.append(os.path.realpath(x)
                                ^
Run Code Online (Sandbox Code Playgroud)

Python抱怨这True:一点,因为它期待像这样的声明

(x if condition else y)
Run Code Online (Sandbox Code Playgroud)

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

if x:
    do_something
if not y:
    do_something_else
Run Code Online (Sandbox Code Playgroud)