J'ai un répertoire haut ds237
qui a plusieurs sous-répertoires sous comme ci-dessous:Python zip plusieurs répertoires dans un fichier zip
ds237/ ├── dataset_description.json ├── derivatives ├── sub-01 ├── sub-02 ├── sub-03 ├── sub-04 ├── sub-05 ├── sub-06 ├── sub-07 ├── sub-08 ├── sub-09 ├── sub-10 ├── sub-11 ├── sub-12 ├── sub-13 ├── sub-21 ├── sub-22 ├── sub-23 ├── sub-24 ├── sub-25 ├── sub-26 ├── sub-27 ├── sub-28 ├── sub-29
Je suis en train de créer plusieurs fichiers zip (avec des noms de zip appropriés) à partir de ds237 selon la taille des fichiers zip. sub01-01.zip: contain sub-01 to sub-07
sub08-13.zip : it contains sub08 to sub-13
J'ai écrit une logique qui crée une liste des sous-répertoires [sub-01,sub-02, sub-03, sub-04, sub-05]
. J'ai créé la liste afin que la taille totale de tous les sous-répertoires de la liste ne soit pas> 5gb.
Ma question: est comment puis-je écrire une fonction zip ces sous-répertoires (qui sont dans une liste) dans un fichier zip destination nom propre. Fondamentalement, je veux écrire une fonction comme suit:
def zipit([list of subdirs], 'path/to/zipfile/sub*-*.zip'):
I i Linux atteins généralement en: « zip -r compriment/sub01-08.zip DS237/sous-0 [1-8] '
la Au-dessus du script va créer un fichier zip en excluant le chemin du répertoire. Disons que j'ai zip '/ Users/aba/ds100/sub-0 [1-6]' dans 'sub01-06.zip' alors quand je décompresse le zip, il devrait générer le chemin suivant' ds100/sub-01' et d'autres annuaires. – learnningprogramming
Vous pouvez également changer le 'relpath' pour aller deux répertoires de' path'. Donc, changez 'os.path.join (chemin, '..')' en 'os.path.join (chemin, '..', '..')' et cela devrait marcher. – Jerr
il fait le travail en partie mais quand je décompresser le 'sub01-06.zip' et' sub07-09.zip', idéalement il devrait décompresser en 'ds100/sub-01 ds100/sub-02 ds100/sub-03 ds100/sous-04 ds100/sub-05 ds100/sub-06 ds100/sub-07 ds100/sub-08 ds100/sub-09, Cependant au-dessus du script avec des chnages vous avez suggéré deux caisses différentes 'ds100' – learnningprogramming