Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

Arhivarea este o modalitate elegantă de a comprima mai multe fișiere și de a le combina într-unul singur. Acest lucru economisește nu numai spațiu de stocare, ci și lățime de bandă atunci când transferați un fișier printr-o rețea. Una dintre cele mai bune caracteristici ale zip este că funcționează pe toate platformele majore: Windows, Linux și Mac.

Zip folosește compresie fără pierderi, astfel încât să rețină toate datele atunci când le comprimă și le decomprima. De asemenea, puteți cripta și decripta fișierele zip.

Cu atât de multe funcții de explorat, descoperiți cum puteți citi, arhiva și dezarhivați fișiere folosind modulul Python zipfile.

Ce este modulul zipfile?

Puteți utiliza modulul standard zipfile pentru a manipula fișiere zip folosind Python. Cu acest modul, puteți deschide și citi fișiere zip, citi metadatele acestora, creați un fișier zip, comprimați și dezarhivați fișierele. Există trei metode de compresie disponibile: Deflate, Bzip2 și LZMA.

instagram viewer

Unul dintre lucrurile care îi lipsește modulului este capacitatea de a gestiona fișiere pe mai multe discuri, dar se ocupă de extensia ZIP64. De asemenea, poate decripta arhivele zip, dar nu le poate cripta. Folosind modulul zipfile puteți obține metadate ale fișierului zip, cum ar fi data și ora modificării. De asemenea, puteți obține detalii precum sistemul de operare utilizat pentru a crea fișierul, versiunea zip și dimensiunea fișierului atât în ​​format comprimat, cât și în format necomprimat.

Cum să Zip fișiere folosind Python

Puteți arhiva mai multe fișiere într-o arhivă folosind modulul zipfile al lui Python. Importă Fișier Zip modul din fișier Zip pachet pentru a efectua operațiunile de zip necesare. De asemenea, import cel os modul pentru a selecta și salva fișiere.

Definiți o funcție get_all_file_paths(). Ar trebui să accepte un parametru de director care conține calea către folderul care conține fișierele de zip.

Inițializați o listă goală care va stoca lista de căi de fișiere. Utilizați o buclă for pentru a obține conținutul complet al directorului țintă folosind os.walk() funcţie. Această funcție preia numele fișierelor dintr-un arbore de directoare deplasându-se de-a lungul acestuia într-o abordare de sus în jos sau de jos în sus. Pentru fiecare director, funcția returnează un trei tuplu care conține rădăcină, dirs și fișiere.

Rădăcina este un șir care conține calea completă către director. Lista dirs include toate subdirectoarele conținute în director. Lista de fișiere conține toate fișierele prezente în director.

În interiorul buclei, declarați altul buclă pentru a itera peste lista de fișiere. Folosește os.path.join() funcția de a combina numele directorului cu fiecare nume de fișier pentru a face o cale completă. Apoi, adăugați acest nume complet de fișier la lista pe care ați creat-o mai devreme. Odată ce această operațiune se termină, returnați lista căilor de fișiere.

# importa modulele necesare
din fișier Zip import Fișier Zip
import os

# creați o funcție pentru a obține toate căile fișierelor
defget_all_file_paths(director):
# inițializarea listei goale pentru a stoca căile fișierelor
file_paths = []

# navigați printre fișiere
pentrurădăcină, directoare, fișiereînos.mers pe jos(director):
pentru numele fișierului în fișiere:
# uniți rădăcina și numele fișierului pentru a crea o cale completă a fișierului
filepath = os.path.join (rădăcină, nume de fișier)
căi_fișier.adăuga(calea fișierului)

# returnează toate căile fișierelor
întoarcere căi_fișier

Stocați calea către folderul care conține fișierele pe care doriți să le comprimați într-o variabilă numită director. Apelați funcția, get_all_file_paths() pe care le-ați creat mai devreme și stocați valoarea în care revine căi_fișier.

Afișați un mesaj utilizatorului pentru a-i anunța că acestea sunt fișierele pe care programul le va arhiva. Iterați peste fișiere și afișați numele acestora.

Treceți numele pe care doriți să îl aibă fișierul dvs. zip împreună cu specificația că programul returnează un fișier care poate fi scris folosind instrucțiunea with pentru a gestiona excepțiile. Iterați peste fiecare fișier și utilizați funcția write() peste fișierul care poate fi scris într-un fișier zip.

Când operațiunea este finalizată, afișați un mesaj care explică că programul a arhivat toate fișierele cu succes.

# cale către folderul pe care doriți să-l comprimați
director = „./pythonzip”

# funcția de apelare pentru a obține toate căile fișierelor din director
file_paths = get_all_file_paths (director)

# imprimarea listei cu toate fișierele pe care doriți să le arhivați
imprimare(„Lista fișierelor care vor fi arhivate:”)

pentru file_name în file_paths:
imprimare(nume de fișier)

# scrierea fișierelor într-un fișier zip
cu Fișier Zip(„fișierul_meu.zip”, 'w') la fel de zip:
# scrieți fiecare fișier unul câte unul
pentru fișier în file_paths:
fermoar.scrie(fişier)

imprimare(„Toate fișierele sunt arhivate!”)

Cum să dezarhivați fișierele folosind Python

Implementarea dezarhivării fișierelor folosind modulul zipfile este mult mai ușoară. Importă fișier Zip pachet de la Fișier Zip modul și stocați numele fișierului zip pe care doriți să îl extrageți într-o variabilă. Utilizați instrucțiunea with pentru a gestiona excepțiile și deschideți fișierul pe care doriți să îl extrageți în modul de citire. Folosește printdir() funcția de afișare a cuprinsului fișierelor prezente în zip.

Afișați un mesaj de progres că extrageți fișierele și utilizați extrage tot() funcția de extragere a conținutului fișierului zip în directorul de lucru curent. Alternativ, puteți include un parametru de cale pentru a schimba calea în care programul extrage fișierele.

Afișează un mesaj utilizând imprimare declarație privind finalizarea operațiunii.

# importul modulelor necesare
din fișier Zip import Fișier Zip

# transmiteți numele fișierului zip pe care doriți să îl extrageți
nume_fișier = „extract.zip”

# deschiderea fișierului zip în modul citire
cu ZipFile (nume_fișier, 'r') la fel de zip:
# afișați conținutul fișierului zip
fermoar.printdir()

# extragerea tuturor fișierelor
imprimare(„Extract în curs...”)
fermoar.extrage tot()
imprimare(„Toate fișierele sunt extrase!”)

Mai multe despre fișierele Zip

Fișierele Zip au câștigat multă popularitate și sunt utilizate de zeci de ani. Site-urile web populare, cum ar fi GitHub și Google Drive, vă permit să descărcați o colecție de fișiere ca arhivă zip. Programul zip comprimă un set de fișiere într-un singur pachet. Acest lucru este în contrast cu un instrument precum tar care împachetează fișierele împreună, dar nu le comprimă.

Dacă doriți să criptați fișierele folosind un algoritm mai eficient, fișierele RAR sunt calea de urmat. RAR folosește algoritmul AES-128, care este mai bun decât algoritmul de deflare utilizat de fișierele zip. În cele din urmă, alege-l pe cel care corespunde cel mai bine nevoilor tale.