#python
#python
Вопрос:
Недавно я получил некоторый пользовательский ввод для обновления кода другого пользователя здесь, чтобы решить проблему, которую я пытался решить. Оказывается, проблема была в Python 2, а не в Python 3! Вот что у меня есть до сих пор. При запуске кода я получаю сообщение об ошибке:
fh = open(ZipFileName, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: ''
import os
import urllib
import requests
import zipfile
r = requests.get('urlexample.zip')
with open('data.zip', 'wb') as f:
f.write(r.content)
ZipFileName = input("Enter full path to zip file:")
fh = open(ZipFileName, 'rb')
z = zipfile.ZipFile(fh)
DestZipFolderName = input("Assign destination folder a name:")
DestPathName = input("Enter destination directory:")
DestPathName = DestPathName "\" DestZipFolderName
for name in z.namelist():
outpath = DestPath
z.extract(name, outpath)
fh.close()
Любые идеи о том, что пошло не так, что было бы чрезвычайно полезно.
Комментарии:
1. Поскольку после ошибки появляется пустая строка, я предполагаю, что вы просто нажимаете enter вместо того, чтобы указывать путь к файловому объекту (следовательно
No such file or directory: ''
).ZipFileName
должен быть путь к файловому объекту, который задается с помощью пользовательского ввода.2. От @codesPliff: Вы пробовали
rh.zip
? Python иногда привередлив в отношении расширений.3. Это чрезвычайно интересный стиль кода. Пожалуйста, проверьте PEP 8 для получения стандартного руководства по стилю python.
4. СуперСтормер стиль кода обусловлен тем, что я просто объединяю код и молюсь, чтобы общий код работал. Я просто серьезно занимаюсь Python, но я проверю соглашения в PEP 8.
5. Gmdev, я иногда просто нажимаю enter, потому что я не уверен, что я делаю неправильно, я попытался ввести путь, как в примере ниже, в моем ответе на последний ответ DapperDuck.
Ответ №1:
Ошибка вызвана тем, что пользовательский ввод не был предоставлен. Это означало, что ZipFileName
переменная была установлена в пустую строку. Итак, когда он был передан в качестве параметра в open()
функцию, произошла ошибка. Я проверил это, запустив эту часть кода:
import os
import urllib
import requests
import zipfile
ZipFileName = input("Enter full path to zip file:")
fh = open(ZipFileName, 'rb')
z = zipfile.ZipFile(fh)
Я ввел путь к тестовому zip-файлу, и программа завершила работу без ошибок.
Комментарии:
1. DapperDuck когда они предлагают ввести полный путь к zip-файлу, они предлагают, например C:\ExampleParentDirectory\ChildDirectory ? или что-то еще?
2. Да, такой путь, но вам не нужны двойные обратные косые черты.
3. Итак, чтобы быть уверенным, что это будет C: ParentDirectoryChildDirectory или C:\ParentDirectoryChildDirectory ?
4. C:ParentDirectoryChildDirectory
5. А, ладно, моя ошибка. Спасибо, DapperDuck, ты очень помог.