Распаковка zip-файлов с использованием python - PullRequest
2 голосов
/ 28 сентября 2019

Я пытаюсь получить все zip-файлы в определенном каталоге с именем «загруженные» и извлечь все их содержимое в каталог с именем «extract».

Я не знаю почему, после того как яперебираю только имя существующих файлов, я получаю сообщение об ошибке, что такого файла нет ...

allFilesList = os.listdir(os.getcwd()+"/downloaded")
print allFilesList #verify - correct expected list
from zipfile import ZipFile
os.chdir(os.getcwd()+"/extracted/")
print os.getcwd() #verify - correct expected dir

for fileName in allFilesList: 
    print fileName
    with ZipFile(fileName, 'r') as zipFileObject:
        if os.path.exists(fileName):
            print "Skipping extracting " + fileName
            continue
        zipFileObject.extractall(pwd='hello')                   
        print "Saving extracted file to extracted/",fileName
print "all files has been successfully extracted"

Сообщение об ошибке:

File "program.py", line 77, in <module>
with ZipFile(fileName, 'r') as zipFileObject:
File "/usr/lib/python2.7/zipfile.py", line 779, in __init__
    self.fp = open(file, modeDict[mode])
IOError: [Errno 2] No such file or directory: 'zipFile1.zip'

1 Ответ

0 голосов
/ 28 сентября 2019

Вы получаете список имен файлов из одного каталога, затем переходите в другой и пытаетесь извлечь файлы из этого каталога, которые, вероятно, не существуют:

allFilesList = os.listdir(os.getcwd()+"/downloaded")
# ...
os.chdir(os.getcwd()+"/extracted/")
# ...
    with ZipFile(fileName, 'r') as zipFileObject:

Если вы измените этот файлZipFile команда для чего-то вроде этого:

    with ZipFile(os.path.join("..", "downloaded", fileName), 'r') as zipFileObject:

Вы должны быть в состоянии открыть файл в каталоге, в котором вы его нашли.

...