Неверный синтаксис остального: 3.8 - PullRequest
0 голосов
/ 30 марта 2020

Я новичок ie в python и хотел бы знать, как исправить приведенный ниже код. Я хотел бы знать, как решить Неверный синтаксис утверждения Else, спасибо!

import os
import zipfile

f = open("filelist.txt","w+")
path=("pathtofile")
directory=os.fsencode(path)
filenames = []
for file in os.listdir(directory):
    filename = os.fsdecode(file)
    if filename.endswith(".zip"):
        with zipfile.ZipFile(filename, 'r') as zipObj:
            contents = zipObj.namelist()

    listfile = (str(contents))
    remchar = "'[]"
    for char in remchar:
            a = listfile.replace(char,"")
    f.write (a)
    continue
    else:
        pass

    f.close()

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Оператор else находится за пределами конца if. Вы должны включить else сразу после завершения другого. Это так:

if filename.endswith(".zip"):
    with zipfile.ZipFile(filename, 'r') as zipObj:
        contents = zipObj.namelist()
else:
    pass

Если вы просто собираетесь написать pass, то вы можете напрямую пропустить else.

0 голосов
/ 30 марта 2020

Помните, что отступ в python значителен. Ваш оператор else: не имеет соответствующего оператора if на том же уровне. Обязательно сделайте отступ правильно, чтобы добиться того, что вы ищете:

if filename.endswith(".zip"):
    with zipfile.ZipFile(filename, 'r') as zipObj:
        contents = zipObj.namelist()

        listfile = (str(contents))
        remchar = "'[]"
        for char in remchar:
            a = listfile.replace(char,"")
            f.write (a)
        continue
else:
    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...