Python Fișier ZIP cu Exemplu

⚡ Rezumat inteligent

Python creează arhive ZIP cu modulele shutil și zipfile încorporate. Aici veți învăța să comprimați un director întreg folosind make_archive(), să comprimați fișiere specifice cu ZipFile și ex.tract, listează și citește conținutul arhivei.

  • 🗜️ creare_arhivă(): shutil.make_archive() comprimă un întreg director într-un fișier .zip.
  • 📄 ZipFile.write(): Funcția ZipFile.write() adaugă fișiere specifice la o arhivă, unul câte unul.
  • 📂 extracînalt(): ZipFile.extractall() dezarhivează fiecare fișier dintr-o arhivă într-un folder.
  • 📋 listă de nume(): Funcția ZipFile.namelist() listează numele fișierelor dintr-o arhivă ZIP.
  • 🤖 Ajutor AI: Instrumentele de inteligență artificială precum Copilot generează instantaneu coduri poștale și dezarhivabile.

Python Fișier Zip

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)

Cum să comprimiți un director întreg în format ZIP Python

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

Python fișier Zip

Code Explicație

  • 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

Python fișier Zip

Acum, fișierul archive.zip va apărea pe sistemul de operare (Windows Explorer)

Python fișier Zip

Pas 3) Când faceți dublu clic pe fișier, veți vedea lista cu toate fișierele de acolo.

Python fișier Zip

Cum se comprimă anumite fișiere folosind ZipFile

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” și „guru99.txt.bak”.

Python fișier Zip

Code Explicație

  • 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.

Python fișier Zip

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.

Python fișier Zip

Completa Python Code pentru a crea un fișier ZIP

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")

Cum să faci un extracDezarhivați un fișier ZIP în Python

Pentru a dezarhiva o arhivă, deschideți-o în modul de citire cu ZipFile și apelați extracînalt() către extracfiecare fișier sau ex.tract() pentru a extrage un singur membru.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    myzip.extractall("extracted_files")

FostultracMetoda tall() scrie toate fișierele arhivate în folderul pe care îl transmiteți ca argument.

Cum să listați fișierele într-un fișier ZIP Archive

Puteți inspecta o arhivă fără extracMetoda namelist() returnează numele fiecărui fișier stocat în arhiva ZIP.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    print(myzip.namelist())

Aceasta afișează o listă cu numele fișierelor conținute în arhivă.

Cum să citești un fișier dintr-un ZIP Archive

Puteți citi un fișier de membru direct din arhivă fără a dezarhiva.ping pe disc folosind metoda open() din ZipFile.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    with myzip.open("guru99.txt") as f:
        print(f.read())

Acest lucru este util atunci când aveți nevoie doar de conținutul unui singur fișier dintr-o arhivă mare.

Întrebări frecvente

Folosește shutil.make_archive(name, 'zip', root_dir) pentru a comprima un director sau deschide un fișier ZipFile în modul de scriere și apelează write() pentru a adăuga anumite fișiere în arhivă.

shutil.make_archive() comprimă un întreg director într-un singur apel, în timp ce zipfile.ZipFile oferă un control mai fin, permițându-vă să adăugați, să citiți sau să extragețitracfișiere individuale din arhivă.

Deschideți arhiva cu ZipFile('file.zip', 'r') și apelați extracînalt('folder') către extractotul, sau extract('name') pentru a extrage un singur fișier din arhivă.

Deschideți fișierul ZipFile în modul de citire și apelați namelist(), care returnează o listă cu fiecare nume de fișier stocat în arhivă, fără ex.tracting pe oricare dintre ele.

Instrucțiunea `with` închide automat arhiva când blocul se termină, chiar dacă apare o eroare, deci nu este nevoie să apelați manual metoda `close()`.

Asistenții de inteligență artificială, precum GitHub Copilot, completează automat apelurile ZipFile și make_archive() și generează bucle care arhivează sau dezarhivează mai multe fișiere dintr-o descriere în limbaj simplu.

Da. Instrumentele bazate pe inteligență artificială pot automatiza scrierea scripturilor de backup și arhivare, pot alege între shutil și zipfile și pot adăuga gestionarea erorilor pentru fișierele lipsă sau arhivele corupte.

Da. Deschideți fișierul ZipFile, apoi utilizați metoda sa open() pe un fișier membru pentru a citi conținutul său direct, fără ex.tracsalvând întreaga arhivă pe disc.

Rezumați această postare cu: