Hallo - Ich wieder -
Anfängerfrage:
Ich versuche mich momentan mit dem zipfile-Modul.
Kann mir mal jemand sagen, wie man komplette Verzeichnisse zippt.
Also rekursiv (inkl. Unterverzeichnisse) abarbeitet ...
Danke im Voraus
Taranis
Dateien rekursiv zippen
Wahrscheinlich in Verbindung mit os.walk
Also etwa so:Du musst nur aufpassen, dass test.zip nicht in einem Verzeichnis erstellt wird, welches mit ins zip soll.
Also etwa so:
Code: Alles auswählen
import os, zipfile
Zip = zipfile.ZipFile("test.zip")
for dirname,dirs,filenames in os.walk("verzeichnis_zum_zippen"):
for filename in filenames:
Zip.write(os.path.join(dirname,filename))
Zip.close()
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
@.JROppenheimer
Braucht es doch auch nicht. os.walk läuft durch den kompletten Verzeichnisbaum.
Siehe hier
mfg, querdenker
Braucht es doch auch nicht. os.walk läuft durch den kompletten Verzeichnisbaum.
Siehe hier
mfg, querdenker
Doch: os.walk() geht rekursiv durch den Verzeichnisbaum. Die Funktion ist in Python geschrieben, kannst Du Dir also anschauen. Sind so ca. 30 Zeilen Quelltext..JROppenheimer hat geschrieben:aber mit rekursiv hat das nüscht zu tun, oder?
ich habe in einem ordner osteuropäische zeichen
unter windows werden diese auch "normal" angezeigt.
wenn ich jetzt die zip fkt benutze, kommen komische zeichen raus.
jetzt muss ich doch bei
Zip.write(os.path.join(dirname,filename))
noch irgendwie unicode reinbringen, ne? aber wie?
unter windows werden diese auch "normal" angezeigt.
wenn ich jetzt die zip fkt benutze, kommen komische zeichen raus.
jetzt muss ich doch bei
Zip.write(os.path.join(dirname,filename))
noch irgendwie unicode reinbringen, ne? aber wie?
ne ich habe in einem ordner ein file
hat z.b. den namen
dann steht darin auch
hat z.b. den namen
wenn ich den namen in einem file reinschreibe ( dirname,filename )týdnù.txt
dann steht darin auch
wenn ich jetzt aber das test.zip entzippe, heisst das file plötzlichtýdnù.txt
t²dn·.txt
Dateinamen in ZIPs sind ISO-8859-1 kodiert, oder sollten es zumindest sein. Wenn Du den Dateinamen in einer anderen Kodierung vorliegen hast, dann musst Du umkodieren.
hmm also hab ich einen nachteil beim zipfile module
denn
winace und co. können die dinger ja auch zippen und beim entpacken dies ordnungsgemäss wiedergeben
gibts da ein besseres module unter python wo ich damit keine probleme habe?
denn
winace und co. können die dinger ja auch zippen und beim entpacken dies ordnungsgemäss wiedergeben
gibts da ein besseres module unter python wo ich damit keine probleme habe?