python: zipfile.ZipFile Нет такого файла или каталога - PullRequest
0 голосов
/ 10 мая 2018

Существует путь к папке:

P:\\2018\\Archive\\

Есть много zip-файлов, которые я хочу создать программно, но я начинаю с test. Я назову этот тестовый zip-файл "CO_007_II.zip" и попытаюсь создать в указанном выше месте:

import zipfile as zp

with zp.ZipFile("P:\\2018\\Archive\\CO_007_II.zip",'w') as myzip:
    myzip.write(r"P:\2018\CO_007_II")

Но я получаю ошибку!

...

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "C:\Python27\ArcGIS10.2\lib\zipfile.py", line 752, in __init__
    self.fp = open(file, modeDict[mode])
IOError: [Errno 2] No such file or directory: 'P:\\2018\\Archive\\CO_007_II.zip'

Разве это не метод создания нового zipfile? Я знаю, что файл не существует. Почему я использую режим 'w', нет?

Это документация:

https://docs.python.org/3/library/zipfile.html

Там написано:

'w' для усечения и написать новый файл

Пример на странице документации:

with ZipFile('spam.zip', 'w') as myzip:
    myzip.write('eggs.txt')

код работал два дня назад, чтобы создать новый zip-файл, но не добавлял папку. Сегодня ничего не работает! Почему бы и нет? Все пути действительны. Как мне создать новый zip-файл с python и добавить в него папки?

1 Ответ

0 голосов
/ 10 мая 2018

Единственный способ воспроизвести это - создать zip-файл в каталоге, который еще не существует. Единственный способ убедиться (вы не можете доверять файловому менеджеру; единственный способ проверить - это проверить изнутри самой программы) - назначить желаемому пути новый zip-файл переменной (например, path), а затем вызвать isdir(dirname(path)). Например:

from os.path import isdir
from os.path import dirname

target = "P:\\2018\\Archive\\CO_007_II.zip"
if not isdir(dirname(target)):
    print('cannot create zipfile because target does not exists')
else:
    # create the zipfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...