Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python

Einführung

Ich wollte ein Backup machen, also bei Google [Python + Verzeichnis + Komprimierung] suchen nach. Beachten Sie, dass Zubari bei der Suche nicht ganz oben angekommen ist.

Verzeichnis komprimieren

tar_dir.py


import tarfile

#Verzeichnisname
dir_name = 'data'
#Komprimierter Dateiname
tar_name = dir_name + '.tar.gz'

#Komprimierungsprozess
archive = tarfile.open(tar_name, mode='w:gz')
archive.add(dir_name)
archive.close()

Wenn Sie ein Verzeichnis angeben, können Sie das Verzeichnis komprimieren.

Verzeichnisaufbau

Solche Verzeichnisse können komprimiert werden.   data/    ├ mydir/    │ ├ nestdir/    │ │ ├ aaa.txt    │ │ ├ bbb.txt    │ │ └ foo.csv    │ ├ bar.csv    │ ├ ccc.txt    │ └ ddd.txt    ├ eee.txt    ├ fff.txt    └ hoge.csv

Modusliste

Das Tarfile hat die folgenden Modi. (Untersucht mit Python 3.5)

Syntax 1: filemode Grammatik 2: Dateimodus [: Komprimierung] (für zufällige Suche) Grammatik 3: Dateimodus [| Komprimierung] (für Streams) Standard: r

mode action
'r'Oder'r:*' Transparent für die Komprimierungsmethode, offen zum Lesen
'r:' Unkomprimiert und offen zum Lesen
'r:gz' Zum Lesen mit gzip-Komprimierung öffnen
'r:bz2' Zum Lesen mit bzip2-Komprimierung geöffnet
'r:xz' Zum Lesen mit lzma-Komprimierung geöffnet
'x'Oder'x:' Erstellen Sie Tarfile ausschließlich ohne Kompression.FileExistsError, wenn die Datei vorhanden ist
'x:gz' Erstellen Sie Tarfile mit GZIP-Komprimierung.FileExistsError, wenn die Datei vorhanden ist
'x:bz2' Erstellen Sie ein Tarfile mit bzip2-Komprimierung.FileExistsError, wenn die Datei vorhanden ist
'x:xz' Erstellen Sie Tarfile mit lzma-Komprimierung.FileExistsError, wenn die Datei vorhanden ist
'a'Oder'a:' Unkomprimiert und zum Anhängen geöffnet.Wenn die Datei nicht vorhanden ist, erstellen Sie eine neue
'w'Oder'w:' Unkomprimiert und offen zum Schreiben
'w:gz' Zum Schreiben mit gzip-Komprimierung öffnen
'w:bz2' Zum Schreiben mit bzip2-Komprimierung geöffnet
'w:xz' Zum Schreiben mit lzma-Komprimierung öffnen
'r|*' Transparent offener Stream zum Lesen bezüglich der Komprimierungsmethode
'r|' Öffnen Sie den unkomprimierten Stream zum Lesen
'r|gz' Öffnen Sie den komprimierten gzip-Stream zum Lesen
'r|bz2' Öffnen Sie den komprimierten bzip2-Stream zum Lesen
'r|xz' Öffnen Sie den komprimierten lzma-Stream zum Lesen
'w|' Öffnen Sie den unkomprimierten Stream zum Schreiben
'w|gz' offener Stream zum Schreiben
'w|bz2' offener Stream zum Schreiben
'w|xz' offener Stream zum Schreiben

Befehlszeile

Sie können Verzeichnisse über die Befehlszeile archivieren und komprimieren.

$ python -m tarfile -c tar_name.tar.gz dir_name/

Die Komprimierungsmethode wird entsprechend der Erweiterung der TAR-Datei umgeschaltet.

Erweiterung Kompressionsverfahren
.gz gz
.tgz gz
.xz xz
.txz xz
.bz2 bz2
.tbz bz2
.tbz2 bz2
.tb2 bz2

Liste der Befehlszeilenoptionen für Tarfile

Möglichkeit フルMöglichkeit Streit Bemerkungen
-v --verbose Der Standardwert ist False
-l --list <tarfile>
-e --extract <tarfile> <output_dir>
-c --create <name> <file>
-t --test <tarfile>

Referenzinformationen

Das echte Dokument tarfile (link)

Recommended Posts

Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python
[Python] Komprimieren und dekomprimieren
Lösen des Lorenz 96-Modells mit Julia und Python
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Installieren Sie die neueste stabile Version von Python mit pyenv (sowohl 2 als auch 3).
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Rufen Sie die API mit python3 auf.
Python mit Pyenv und Venv
Erstellen Sie ein Verzeichnis mit Python
Holen Sie sich das Home-Verzeichnis mit Python
Funktioniert mit Python und R.
Automatisieren Sie das Entfernen des Hintergrunds für die neuesten Porträts in einem Verzeichnis mit Python und API
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
[Python] Lesen Sie die CSV-Datei und zeigen Sie die Abbildung mit matplotlib an
Löse das Spiralbuch (Algorithmus und Datenstruktur) mit Python!
[Python] Ruft das Skriptausführungsverzeichnis mit einem absoluten Pfad ab
Spielen Sie mit Mastodons Archiv in Python 2 Count Antworten und Favoriten
Spielen Sie mit dem Passwortmechanismus von GitHub Webhook und Python
Mische die Bilder in einem beliebigen Verzeichnis mit Python und speichere sie in einem anderen Ordner mit Seriennummern.
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Leuchtendes Leben mit Python und OpenCV
[Python] Überprüfen Sie das aktuelle Verzeichnis und verschieben Sie das Verzeichnis
Extrahieren Sie die xz-Datei mit Python
Die Geschichte von Python und die Geschichte von NaN
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Neuronales Netzwerk mit OpenCV 3 und Python 3
AM-Modulation und Demodulation mit Python
Scraping mit Node, Ruby und Python
Kratzen mit Python und schöner Suppe
Holen Sie sich das Wetter mit Python-Anfragen 2
Finden Sie die Bearbeitungsentfernung (Levenshtein-Entfernung) mit Python
JSON-Codierung und -Decodierung mit Python
Hadoop-Einführung und MapReduce mit Python
[GUI in Python] PyQt5-Drag & Drop-
Klicken Sie mit Python auf die Etherpad-Lite-API
Installieren Sie das Python-Plug-In mit Netbeans 8.0.2
Lesen und Schreiben von NetCDF mit Python
Ich mochte den Tweet mit Python. ..
Ich habe mit PyQt5 und Python3 gespielt
Beherrsche den Typ mit Python [Python 3.9 kompatibel]
Lesen und Schreiben von CSV mit Python
Mehrfachintegration mit Python und Sympy
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Sugoroku-Spiel und Zusatzspiel mit Python
FM-Modulation und Demodulation mit Python
Befehl für das aktuelle Verzeichnis Python
Lösen Sie das Python-Rucksackproblem mit der Branch-and-Bound-Methode
Betreiben Sie Firefox mit Selen aus Python und speichern Sie die Bildschirmaufnahme
Was soll ich denn mit der Python-Verzeichnisstruktur machen?
[Python] Eine Funktion, die die gesamte Zeichenfolge mit einem regulären Ausdruck durchsucht und alle übereinstimmenden Zeichenfolgen abruft.
Kommunizieren Sie mit gRPC zwischen Elixir und Python
Machen Sie die Python-Konsole mit UNKO bedeckt
Datenpipeline-Aufbau mit Python und Luigi
Füllen Sie die Zeichenfolge mit Nullen in Python und zählen Sie bestimmte Zeichen aus der Zeichenfolge
Berechnen Sie das Standardgewicht und zeigen Sie es mit Python an
Ich habe die numerische Berechnung von Python durch Rust ersetzt und die Geschwindigkeit verglichen
Überwachen Sie Mojo-Ausfälle mit Python und Skype