Eksempel 1: Komprimering af en enkelt fil
Opret en ny fil med navnet 'postnummer1.py ' og tilføj følgende kode. zipfil modulet importeres for at komprimere filen. Midlertidig.lynlås tildeles som zip-filnavn med skrivetilstand og derefter det originale filnavn, Midlertidig.txt og komprimeringstype er angivet som parametre i skrivemetoden.
importer zip-filzip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_fil.skriv ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_fil.tæt()
Kør scriptet
$ python3 postnummer1.pyStørrelsen på Midlertidig.txt er 27 byte og efter komprimering, størrelsen på Midlertidig.lynlås er 2 byte.
Eksempel 2: Komprimering af et bestemt bibliotek
Opret en ny fil med navnet 'postnummer2.py ' og tilføj følgende kode. En mappe kan indeholde mange filer, mapper og undermapper. For at læse indholdet af biblioteket, os modul af python importeres med zipfil modul til at komprimere biblioteket. I dette script, mydir bibliotek bruges til komprimering.
# import krævede modulerimporter os
importer zip-fil
# Erklær funktionen for at returnere alle filstier i den bestemte mappe
def retrieve_file_paths (dirName):
# setup filstier variabel
filePaths = []
# Læs alle biblioteker, underkataloger og fillister
til rod, mapper, filer i os.gå (dirName):
til filnavn i filer:
# Opret den fulde filsti ved hjælp af os-modulet.
filePath = os.sti.join (rod, filnavn)
filePaths.tilføje (filePath)
# returner alle stier
returner filstier
# Erklær hovedfunktionen
def hoved ():
# Tildel navnet på biblioteket, der skal zipes
dir_name = 'mydir'
# Ring til funktionen for at hente alle filer og mapper i det tildelte bibliotek
filePaths = retrieve_file_paths (dir_name)
# udskriver listen over alle filer, der skal zipes
print ('Den følgende liste over filer vil blive zippet:')
for filnavn i filstier:
udskrive (filnavn)
# skriver filer til en zip-fil
zip_file = zipfile.ZipFile (dir_name + '.zip ',' w ')
med zip_file:
# skriver hver fil en efter en
til fil i filePaths:
zip_fil.skriv (fil)
udskriv (dir_name + '.zip-filen er oprettet med succes!')
# Ring til hovedfunktionen
hvis __name__ == "__main__":
hoved ()
Kør scriptet
$ python3 postnummer2.pyStørrelsen på mydir er 21 byte og efter komprimering, størrelsen på mydir.lynlås er 2 byte.
Eksempel 3: Komprimering af en mappe givet ved kommandolinjeargument
Opret en ny fil med navnet 'postnummer3.py ' og tilføj følgende kode. For at læse kommandolinjeværdien et andet python-modul sys importeres med os og zipfil moduler.
# import krævede modulerimporter os
importer sys
importer zip-fil
# Erklær funktionen for at returnere alle filstier i en bestemt mappe
def retrieve_file_paths (dirName):
# setup filstier variabel
filePaths = []
# Læs alle biblioteker, underkataloger og fillister
til rod, mapper, filer i os.gå (dirName):
til filnavn i filer:
# Opret den fulde filsti ved hjælp af os-modulet.
filePath = os.sti.join (rod, filnavn)
filePaths.tilføje (filePath)
# returner alle stier
returner filstier
# Erklær hovedfunktionen
def hoved ():
# Kontroller, at der gives to argumenter på tidspunktet for kørsel af scriptet
hvis len (sys.argv) != 2:
udskriv ("Du skal indtaste navnet på den mappe, der skal zipes")
sys.udgang (1)
# Indstil katalognavnet fra kommandoargumentet
dir_name = sys.argv [1]
# Indstil zip-filnavnet
zipFileName = dir_name + ".zip "
# Ring til funktionen for at hente alle filer og mapper i det tildelte bibliotek
filePaths = retrieve_file_paths (dir_name)
# udskriv listen over filer, der skal zipes
print ('Den følgende liste over filer vil blive zippet:')
til filnavn i filstier:
udskrive (filnavn)
# skriv filer og mapper til en zip-fil
zip_file = zipfile.ZipFile (zipFileName, 'w')
med zip_file:
# skriv hver fil separat
til fil i filePaths:
zip_fil.skriv (fil)
print (zipFileName + '-fil er oprettet med succes!')
# Ring til hovedfunktionen
hvis __name__ == "__main__":
hoved ()
Kør scriptet
$ python3 postnummer3.pyprøve er angivet som katalognavn i kommandolinjeargumentet. Størrelsen på prøve er 21 byte og efter komprimering, størrelsen på prøve.lynlås er 2 byte.
Jeg håber, denne tutorial hjælper dig med at bruge python til komprimering af enhver fil eller mappe.