Python ZIP-bestand met voorbeeld

Python Hiermee kunt u snel zip-/tar-archieven maken.

Met de volgende opdracht wordt de hele map gezipt

shutil.make_archive(output_filename, 'zip', dir_name)

Met de volgende opdracht krijgt u controle over de bestanden die u wilt archiveren

ZipFile.write(filename)

Hier zijn de stappen om een ​​zipbestand te maken Python

Stap 1) Om een ​​archiefbestand te maken van Python, zorg ervoor dat uw import statement correct en in orde is. Hier is de import statement voor het archief from shutil import make_archive

Python ZIP-bestand

Code Uitleg

  • Importeer make_archive klasse van module shutil
  • Gebruik de splitsfunctie om de directory en de bestandsnaam op te splitsen van het pad naar de locatie van het tekstbestand (guru99)
  • Vervolgens roepen we de module “shutil.make_archive(“guru99 archive, “zip”, root_dir)” aan om een ​​archiefbestand te maken, dat in zip-formaat zal zijn
  • Daarna geven we de hoofdmap door van de dingen die we willen inpakken. Dus alles in de map wordt gecomprimeerd
  • Wanneer u de code uitvoert, ziet u aan de rechterkant van het paneel dat het archief-zipbestand is aangemaakt.

Stap 2) Zodra uw archiefbestand is gemaakt, kunt u met de rechtermuisknop op het bestand klikken en het besturingssysteem selecteren. Uw archiefbestanden worden dan weergegeven zoals hieronder weergegeven.

Python ZIP-bestand

Nu zal uw archive.zip-bestand op uw besturingssysteem verschijnen (Windows Verkenner)

Python ZIP-bestand

Stap 3) Wanneer u dubbelklikt op het bestand, ziet u een lijst met alle bestanden die erin staan.

Python ZIP-bestand

Stap 4) In Python we kunnen meer controle hebben over het archief, omdat we kunnen definiëren welk specifiek bestand we onder het archief willen opnemen. In ons geval zullen we twee bestanden onder het archief opnemen “guru99.txt” en “guru99.txt.bak”.

Python ZIP-bestand

Code Uitleg

  • Importeer de Zipfile-klasse uit een zipbestand Python module. Deze module geeft volledige controle over het maken van zip-bestanden
  • We maken een nieuw zipbestand met de naam ( “testguru99.zip, “w”)
  • Voor het maken van een nieuwe Zipfile-klasse is toestemming vereist omdat het een bestand is, dus u moet informatie in het bestand schrijven als newzip
  • We gebruikten de variabele “newzip” om te verwijzen naar het zipbestand dat we hadden gemaakt
  • Met behulp van de schrijffunctie op de variabele “newzip” voegen we de bestanden “guru99.txt” en “guru99.txt.bak” toe aan het archief

Wanneer je de code uitvoert, kun je zien dat het bestand aan de rechterkant van het paneel is aangemaakt met de naam “guru99.zip”

Note: Hier geven we geen commando om het bestand te “sluiten” zoals “newzip.close” omdat we “With” scope lock gebruiken, dus als het programma buiten dit bereik valt, wordt het bestand opgeschoond en automatisch gesloten.

Stap 5) Wanneer je -> klik met de rechtermuisknop op het bestand (testguru99.zip) en -> selecteer uw besturingssysteem (Windows Verkenner), worden de archiefbestanden in de map weergegeven zoals hieronder weergegeven.

Python ZIP-bestand

Wanneer u dubbelklikt op het bestand “testguru99.zip”, wordt er een ander venster geopend, waarin de bestanden die erin zijn opgenomen worden weergegeven.

Python ZIP-bestand

Hier is de volledige code

Python 2 Voorbeeld

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 Voorbeeld

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

Samenvatting

  • Om een ​​hele directory te zippen, gebruikt u de opdracht “shutil.make_archive(“name”,”zip”, root_dir)
  • Om de bestanden te selecteren die u wilt zippen, gebruikt u de opdracht “ZipFile.write(filename)”