За последние полчаса я пытался выяснить, что не так с этим кодом. Это должно быть очень прямолинейно. На данный момент я практически скопировал это из документации. Но независимо от того, что я пытаюсь, я получаю синтаксическую ошибку.
Здесь код:
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 или что-то еще?
Спасибо за помощь. На данный момент я очень расстроен... хе-хе.
В этой строке отсутствует скобка:
files.append(os.path.realpath(x)
^
Python жалуется на бит True:
, потому что ожидает выражения типа
(x if condition else y)
Как говорит jcomeau_ictx, вы должны также оставить == True
при проверке для booleans:
if x:
do_something
if not y:
do_something_else
вам не хватает скобок в предыдущей строке.