Je voulais faire une sauvegarde, donc sur Google [python + répertoire + compression] rechercher. Notez que Zubari n'a pas atteint le sommet de la recherche.
tar_dir.py
import tarfile
#Nom du répertoire
dir_name = 'data'
#Nom du fichier compressé
tar_name = dir_name + '.tar.gz'
#Processus de compression
archive = tarfile.open(tar_name, mode='w:gz')
archive.add(dir_name)
archive.close()
Si vous spécifiez un répertoire, vous pouvez compresser le répertoire.
Ces répertoires peuvent être compressés. data/ ├ mydir/ │ ├ nestdir/ │ │ ├ aaa.txt │ │ ├ bbb.txt │ │ └ foo.csv │ ├ bar.csv │ ├ ccc.txt │ └ ddd.txt ├ eee.txt ├ fff.txt └ hoge.csv
Le tarfile a les modes suivants. (Enquête avec Python 3.5)
Syntaxe 1: filemode
Grammaire 2: filemode [: compression] (pour une recherche aléatoire)
Grammaire 3: filemode [| compression] (pour les flux)
Par défaut: r
| mode | action |
|---|---|
| 'r'Ou'r:*' | Transparent pour la méthode de compression, ouvert pour la lecture |
| 'r:' | Non compressé et ouvert à la lecture |
| 'r:gz' | Ouvrir pour la lecture avec la compression gzip |
| 'r:bz2' | Ouvrir en lecture avec la compression bzip2 |
| 'r:xz' | Ouvrir pour la lecture avec la compression LZMA |
| 'x'Ou'x:' | Créer un fichier tar exclusivement sans compression.FileExistsError si le fichier existe |
| 'x:gz' | Créer un fichier tar avec la compression gzip.FileExistsError si le fichier existe |
| 'x:bz2' | Créer un fichier tar avec la compression bzip2.FileExistsError si le fichier existe |
| 'x:xz' | Créer un fichier tar avec la compression lzma.FileExistsError si le fichier existe |
| 'a'Ou'a:' | Non compressé et ouvert pour l'ajout.Si le fichier n'existe pas, créez-en un nouveau |
| 'w'Ou'w:' | Non compressé et ouvert à l'écriture |
| 'w:gz' | Ouvrir pour l'écriture avec la compression gzip |
| 'w:bz2' | Ouvrir pour l'écriture avec la compression bzip2 |
| 'w:xz' | Ouvrir pour l'écriture avec la compression lzma |
| 'r|*' | Flux ouvert de manière transparente pour la lecture concernant la méthode de compression |
| 'r|' | Ouvrir le flux non compressé pour la lecture |
| 'r|gz' | Ouvrez le flux compressé gzip pour la lecture |
| 'r|bz2' | Ouvrez le flux compressé bzip2 pour la lecture |
| 'r|xz' | Ouvrir le flux compressé lzma pour la lecture |
| 'w|' | Ouvrir un flux non compressé pour l'écriture |
| 'w|gz' | flux ouvert pour l'écriture |
| 'w|bz2' | flux ouvert pour l'écriture |
| 'w|xz' | flux ouvert pour l'écriture |
Vous pouvez archiver et compresser des répertoires à partir de la ligne de commande.
$ python -m tarfile -c tar_name.tar.gz dir_name/
Il change la méthode de compression en fonction de l'extension du fichier tar.
| extension | Méthode de compression |
|---|---|
| .gz | gz |
| .tgz | gz |
| .xz | xz |
| .txz | xz |
| .bz2 | bz2 |
| .tbz | bz2 |
| .tbz2 | bz2 |
| .tb2 | bz2 |
Liste des options de ligne de commande pour tarfile
| option | フルoption | argument | Remarques |
|---|---|---|---|
| -v | --verbose | Le défaut est faux | |
| -l | --list | <tarfile> | |
| -e | --extract | <tarfile> <output_dir> | |
| -c | --create | <name> <file> | |
| -t | --test | <tarfile> |
Document original tarfile (lien)
Recommended Posts