Python

Brug python til at zip en fil og et bibliotek

Brug python til at zip en fil og et bibliotek
En komprimeret fil indeholder mange filer, bibliotek og underkataloger. Mange applikationer er tilgængelige for at oprette en komprimeringsfil af enhver stor fil eller mappe og hente filer eller mapper ved at udtrække en komprimeret fil. Når vi ønsker at overføre store eller mapper over internettet, er det bedre at komprimere indholdet, før vi overfører. Dette gør opgaven hurtigere. Du kan bruge python-scripts til komprimering og udpakning af enhver stor fil eller mappe. zipfil modul af python bruges til at udføre opgaven. Hvordan du kan bruge python3 til at komprimere enhver fil eller mappe vises i denne vejledning ved hjælp af forskellige eksempler.

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-fil
zip_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.py

Stø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 moduler
 
importer 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.py

Stø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 moduler
 
importer 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.py

prø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.

Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...
Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...
Mus Sådan ændres venstre og højre museknap på Windows 10-pc
Sådan ændres venstre og højre museknap på Windows 10-pc
Det er en ganske normal, at alle computermusenheder er ergonomisk designet til højrehåndede brugere. Men der er musenheder til rådighed, der er specie...