Chcę napisać skrypt, aby dodać wszystkie pliki ".py" do pliku zip.Używanie Pythona do dodawania listy plików do pliku zip
Oto co mam:
import zipfile
import os
working_folder = 'C:\\Python27\\'
files = os.listdir(working_folder)
files_py = []
for f in files:
if f[-2:] == 'py':
fff = working_folder + f
files_py.append(fff)
ZipFile = zipfile.ZipFile("zip testing.zip", "w")
for a in files_py:
ZipFile.write(a, zipfile.ZIP_DEFLATED)
jednak daje błąd:
Traceback (most recent call last):
File "C:\Python27\working.py", line 19, in <module>
ZipFile.write(str(a), zipfile.ZIP_DEFLATED)
File "C:\Python27\lib\zipfile.py", line 1121, in write
arcname = os.path.normpath(os.path.splitdrive(arcname)[1])
File "C:\Python27\lib\ntpath.py", line 125, in splitdrive
if p[1:2] == ':':
TypeError: 'int' object has no attribute '__getitem__'
więc wydaje się, że podane nazwy plików nie jest poprawna.
co wiersza? pokaż pełny ślad – WeaselFox
ah, Panie Pieters, jak się masz? to jest prawdziwe imię. Próbowałem zmienić go na "testing.zip", nie działając. –
@MarkK: Tak, już to zdyskredytowałem, przepraszam za pytanie o to bez sprawdzenia, co to jest 'arcname' w źródle. Znalazłem problem już, zobacz moją odpowiedź. –