Python Fișier ZIP cu Exemplu
Python vă permite să creați rapid arhive zip/tar.
Următoarea comandă va arhiva întregul director
shutil.make_archive(output_filename, 'zip', dir_name)
Următoarea comandă vă oferă control asupra fișierelor pe care doriți să le arhivați
ZipFile.write(filename)
Iată pașii pentru a crea fișierul Zip în Python
Pas 1) Pentru a crea un fișier de arhivă din Python, asigurați-vă că aveți declarația de import corectă și în ordine. Aici este declarația de import pentru arhivă from shutil import make_archive
Explicarea codului
- Importă clasa make_archive din modulul Shuil
- Utilizați funcția de împărțire pentru a împărți directorul și numele fișierului de la calea la locația fișierului text (guru99)
- Apoi numim modulul „shutil.make_archive(“guru99 archive, „zip”, root_dir)” pentru a crea fișierul arhivă, care va fi în format zip
- După aceea trecem în directorul rădăcină a lucrurilor pe care vrem să le arhivam. Deci, totul din director va fi arhivat
- Când rulați codul, puteți vedea că fișierul zip de arhivă este creat în partea dreaptă a panoului.
Pas 2) Odată ce fișierul dvs. de arhivă este creat, puteți face clic dreapta pe fișier și selecta sistemul de operare, iar acesta va afișa fișierele dvs. de arhivă în el, așa cum se arată mai jos
Acum, fișierul archive.zip va apărea pe sistemul de operare (Windows Explorer)
Pas 3) Când faceți dublu clic pe fișier, veți vedea lista cu toate fișierele de acolo.
Pas 4) In Python putem avea mai mult control asupra arhivei, deoarece putem defini ce fișier specific să includem în arhivă. În cazul nostru, vom include două fișiere în arhivă „guru99.txt” si „guru99.txt.bak”.
Explicarea codului
- Importați clasa Zipfile din fișierul zip Python modul. Acest modul oferă control deplin asupra creării fișierelor zip
- Creăm un nou fișier Zip cu nume ( „testguru99.zip, „w”)
- Crearea unei noi clase Zipfile necesită permisiunea pentru că este un fișier, așa că trebuie să scrieți informații în fișier ca newzip
- Am folosit variabila „newzip” pentru a face referire la fișierul zip pe care l-am creat
- Folosind funcția de scriere a variabilei „newzip”, adăugăm fișierele „guru99.txt” și „guru99.txt.bak” în arhivă
Când executați codul, puteți vedea că fișierul este creat în partea dreaptă a panoului cu numele „guru99.zip”
notițe: Aici nu dăm nicio comandă de „închidere” a fișierului, cum ar fi „newzip.close”, deoarece folosim blocarea domeniului „Cu”, așa că atunci când programul se încadrează în acest domeniu, fișierul va fi curățat și se va închide automat.
Pas 5) Cand tu -> faceți clic dreapta pe fișier (testguru99.zip) și -> selectați sistemul de operare (Windows Explorer), va afișa fișierele de arhivă din folder, așa cum se arată mai jos.
Când faceți dublu clic pe fișierul „testguru99.zip”, se va deschide o altă fereastră, iar aceasta va afișa fișierele incluse în el.
Aici este codul complet
Python 2 Exemplu
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive def main(): # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive", "zip", root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip","w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak") if __name__== "__main__": main()
Python 3 Exemplu
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive","zip",root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip", "w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak")
Rezumat
- Pentru a arhiva întregul director, utilizați comanda „shutil.make_archive(“nume”,”zip”, root_dir)
- Pentru a selecta fișierele de zip, utilizați comanda „ZipFile.write(filename)”