Что-то в модуле os я не получаю? - PullRequest
1 голос
/ 05 июня 2011

Последние полчаса я пытался выяснить, что не так с этим кодом. Это должно быть очень прямым. Я практически скопировал это из документации на данный момент. Но что бы я ни пытался, я получаю синтаксическую ошибку.

Вот код:

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 ]

11 голосов
/ 05 июня 2011

В этой строке отсутствует скобка:

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 голос
/ 05 июня 2011

в предыдущей строке отсутствуют закрывающие скобки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...