Python ZIP-fil med Exempel

Python låter dig snabbt skapa zip/tar-arkiv.

Följande kommando kommer att zippa hela katalogen

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

Följande kommando ger dig kontroll över de filer du vill arkivera

ZipFile.write(filename)

Här är stegen för att skapa zip-fil i Python

Steg 1) För att skapa en arkivfil från Python, se till att du har din importsats korrekt och i ordning. Här är importförklaringen för arkivet from shutil import make_archive

Python Zip fil

Kodförklaring

  • Importera make_archive-klass från modul shutil
  • Använd splitfunktionen för att dela upp katalogen och filnamnet från sökvägen till textfilens plats (guru99)
  • Sedan anropar vi modulen "shutil.make_archive("guru99 archive, "zip", root_dir)" för att skapa arkivfil, som kommer att vara i zip-format
  • Efter det skickar vi in ​​rotkatalogen med saker vi vill ska bli zippade. Så allt i katalogen kommer att zippas
  • När du kör koden kan du se att arkivets zip-fil skapas på höger sida av panelen.

Steg 2) När din arkivfil är skapad kan du högerklicka på filen och välja operativsystemet, så kommer det att visa dina arkivfiler i den som visas nedan

Python Zip fil

Nu kommer din archive.zip-fil att visas på ditt operativsystem (Windows explorer)

Python Zip fil

Steg 3) När du dubbelklickar på filen kommer du att se listan med alla filer där.

Python Zip fil

Steg 4) In Python vi kan ha mer kontroll över arkivet eftersom vi kan definiera vilken specifik fil som ska inkluderas under arkivet. I vårt fall kommer vi att inkludera två filer under arkiv "guru99.txt" och "guru99.txt.bak".

Python Zip fil

Kodförklaring

  • Importera Zipfile-klass från zip-fil Python modul. Denna modul ger full kontroll över att skapa zip-filer
  • Vi skapar en ny Zipfil med namn ("testguru99.zip, "w")
  • Att skapa en ny Zipfile-klass kräver att du skickar in behörighet eftersom det är en fil, så du måste skriva information i filen som newzip
  • Vi använde variabeln "newzip" för att referera till zip-filen vi skapade
  • Med hjälp av skrivfunktionen på variabeln "newzip" lägger vi till filerna "guru99.txt" och "guru99.txt.bak" till arkivet

När du kör koden kan du se att filen skapas på höger sida av panelen med namnet "guru99.zip"

Anmärkningar: Här ger vi inget kommando för att "stänga" filen som "newzip.close" eftersom vi använder "With" scope lock, så när programmet faller utanför detta scope kommer filen att rensas upp och stängs automatiskt.

Steg 5) När du -> högerklicka på filen (testguru99.zip) och -> välj ditt operativsystem (Windows explorer), kommer den att visa arkivfilerna i mappen som visas nedan.

Python Zip fil

När du dubbelklickar på filen "testguru99.zip", öppnas ett annat fönster, och detta kommer att visa filerna som ingår i den.

Python Zip fil

Här är den fullständiga koden

Python 2 Exempel

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 Exempel

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

Sammanfattning

  • För att zippa hela katalogen använd kommandot "shutil.make_archive("namn",,"zip", root_dir)
  • För att välja filerna att zippa använd kommandot "ZipFile.write(filename)"