Python ZIP-fil med Exempel
⚡ Smart sammanfattning
Python skapar ZIP-arkiv med de inbyggda modulerna shutil och zipfile. Här lär du dig att zippa en hel katalog med make_archive(), zippa specifika filer med ZipFile och t.ex.tract, lista och läs arkivinnehåll.

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)
Hur man zippar en hel katalog Python
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
Code Fö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
Nu kommer din archive.zip-fil att visas på ditt operativsystem (Windows explorer)
Steg 3) När du dubbelklickar på filen kommer du att se listan med alla filer där.
Hur man zippar specifika filer med ZipFile
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".
Code Fö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.
När du dubbelklickar på filen "testguru99.zip", öppnas ett annat fönster, och detta kommer att visa filerna som ingår i den.
Komplett Python Code att skapa en 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")
Hur man exartracPacka upp en ZIP-fil i Python
För att packa upp ett arkiv, öppna det i läsläge med ZipFile och anropa extrachög() till extract varje fil, eller t.ex.tract() för att hämta ut en enskild medlem.
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: myzip.extractall("extracted_files")
ExettracMetoden tall() skriver alla arkiverade filer till den mapp du skickar som ett argument.
Hur man listar filer i en ZIP-fil Archive
Du kan granska ett arkiv utan extracning det. Metoden namelist() returnerar namnen på varje fil som lagras i ZIP-filen.
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: print(myzip.namelist())
Detta skriver ut en lista över filnamnen som finns i arkivet.
Hur man läser en fil inuti en ZIP-fil Archive
Du kan läsa en medlemsfil direkt från arkivet utan att packa upp denping den till disken med hjälp av open()-metoden i ZipFile.
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: with myzip.open("guru99.txt") as f: print(f.read())
Detta är användbart när du bara behöver innehållet i en fil från ett stort arkiv.







