Ś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 № 1Jedynym 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