Python ZIP-bestand met voorbeeld

Met Python kun je snel zip/tar maken archives.

Following commando zal de hele map zippen

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

Following opdracht geeft u controle over de bestanden die u wilt archive

ZipFile.write(filename)

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

Stap 1) Om een archive-bestand van Python, zorg ervoor dat uw importinstructie correct en in orde is. Hier de importverklaring voor de archive is from shutil import make_archive

Python ZIP-bestand

Code Uitleg

  • Importeer merk_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)
  • Dan noemen we de module “shutil.make_archive(“goeroe99 archive, “zip”, root_dir)” om te maken archive-bestand, 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 de archiEr wordt een zipbestand gemaakt aan de rechterkant van het paneel.

Stap 2) Zodra je archiAls er een bestand is gemaakt, kunt u met de rechtermuisknop op het bestand klikken en het besturingssysteem selecteren, waarna uw archive bestanden erin, zoals hieronder weergegeven

Python ZIP-bestand

Nu jij archive.zip-bestand verschijnt op uw besturingssysteem (Windows Verkenner)

Python ZIP-bestand

Stap 3) Wanneer je double-klik op het bestand, u ziet de lijst met alle bestanden daarin.

Python ZIP-bestand

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

Python ZIP-bestand

Code Uitleg

  • Importeer de Zipfile-klasse uit de Python-module met zipbestand. 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 “newzip” variabele voegen we de bestanden “guru99.txt” en “guru99.txt.bak” toe aan de archive

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), het zal de archive-bestanden in de map zoals hieronder weergegeven.

Python ZIP-bestand

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

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

Samengevat

  • Om de hele map te zippen, gebruik je de opdracht “shutil.make_archive(“naam”,,”zip”, root_dir)
  • Om de bestanden te selecteren die u wilt zippen, gebruikt u de opdracht “ZipFile.write(filename)”