Bessere Möglichkeit, Dateien in Python zu komprimieren (zip ein ganzes Verzeichnis mit einem einzigen Befehl)? [Duplikat]

8

Angenommen, ich besitze ein Verzeichnis: /home/user/files/ . Dieses Verzeichnis enthält eine Reihe von Dateien:

%Vor%

Ich möchte dieses Verzeichnis mit ZipFile in Python komprimieren. Muss ich das Verzeichnis durchlaufen und diese Dateien rekursiv hinzufügen Oder ist es möglich, den Verzeichnisnamen zu übergeben, und die ZipFile-Klasse fügt automatisch alles darunter hinzu?

Am Ende möchte ich:

%Vor%     
Somebody still uses you MS-DOS 31.08.2010, 18:36
quelle

6 Antworten

1

Sie könnten subprocess module:

verwenden %Vor%

Der Code wurde nicht getestet und funktioniert nur auf Unix-Rechnern. Ich weiß nicht, ob Windows ähnliche Befehlszeilenprogramme hat.

    
mg. 31.08.2010, 18:51
quelle
23

Beachten Sie, dass dies keine leeren Verzeichnisse beinhaltet. Falls dies erforderlich ist, sind im Internet Umgehungslösungen verfügbar. wahrscheinlich am besten, um den ZipInfo-Datensatz für leere Verzeichnisse in unseren bevorzugten Archivierungsprogrammen zu bekommen, um zu sehen, was in ihnen ist.

Hardcoding Datei / Pfad, um Details meines Codes loszuwerden ...

%Vor%     
dash-tom-bang 31.08.2010 19:23
quelle
6

Sie könnten versuchen, das distutils-Paket zu verwenden:

%Vor%     
bosmacs 31.08.2010 18:38
quelle
2

Sie können möglicherweise auch den zip Befehl verwenden, der in verfügbar ist die Unix-Shell mit einem Aufruf an os.system

    
inspectorG4dget 31.08.2010 18:51
quelle
1

Ich kenne keine Shortcuts im Modul zip , aber da draußen sind einige Snippets:

miku 31.08.2010 18:39
quelle
0

Wenn Sie nur Python-Dateien zippen wollen, gibt es folgendes: Ссылка

    
fridder 31.08.2010 19:00
quelle

Tags und Links