/ / python: zipfile.ZipFile Nie ma takiego pliku lub katalogu - python, zipfile, errno

python: zipfile.ZipFile Nie ma takiego pliku lub katalogu - python, zipfile, errno

Ścieżka folderu:

P:\2018\Archive\

Istnieje wiele plików zip, które chcę utworzyć programowo, ale zaczynam od testu. Nazwę tego pliku zip testowego "CO_007_II.zip" i spróbuję utworzyć w powyższej lokalizacji:

import zipfile as zp

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

Ale dostaję błąd!

...

Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:Python27ArcGIS10.2libzipfile.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"

Czy to nie jest metoda na tworzenie nowego pliku zip? Wiem, że plik nie istnieje. Dlaczego używam trybu "w", nie?

To jest dokumentacja:

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

To mówi:

"w" do obcięcia i napisz nowy plik

Przykład na stronie dokumentacji:

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

Kod pracował dwa dni temu, aby utworzyć nowy plik ZIP, ale nie dodał folderu. Dzisiaj nic nie działa! Dlaczego nie? Wszystkie ścieżki są prawidłowe. Jak utworzyć nowy plik ZIP z pythonem i dodać do niego foldery?

Odpowiedzi:

1 dla odpowiedzi № 1

Jedynym sposobem na odtworzenie tego byłoutwórz plik zip w katalogu, który jeszcze NIE istnieje. Jedynym sposobem, aby się upewnić (nie można ufać menedżerowi plików, jedynym sposobem na sprawdzenie jest sprawdzenie w samym programie) jest przypisanie pożądanej ścieżki nowego pliku zip do zmiennej (np. Ścieżki), a następnie wywołanie isdir(dirname(path)). Na przykład:

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