Ich möchte ein Skript schreiben, um alle '.py' Dateien in eine Zip-Datei hinzuzufügen. HierVerwenden von Python zum Hinzufügen einer Liste von Dateien in eine Zip-Datei
ist, was ich habe:
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)
Allerdings gibt es einen Fehler:
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__'
so scheint die Datei Taufnamen nicht korrekt ist.
welche Linie? Zeige die volle Spur – WeaselFox
Ach, Herr Pieters, wie geht es Ihnen? es ist der eigentliche Name. Ich habe versucht, es in "testing.zip" zu ändern, und es funktioniert auch nicht. –
@MarkK: Ja, das habe ich schon in der Zwischenzeit abgeschätzt, tut mir leid, dass ich danach gefragt habe, ohne zu überprüfen, was 'arcname' in der Quelle ist. Ich habe das Problem bereits gefunden, siehe meine Antwort. –