Python

Bruk python til å pakke en fil og katalog

Bruk python til å pakke en fil og katalog
En komprimert fil inneholder mange filer, kataloger og underkataloger. Mange applikasjoner er tilgjengelige for å lage en komprimeringsfil av en hvilken som helst stor fil eller katalog og hente filer eller mapper ved å trekke ut en komprimert fil. Når vi ønsker å overføre store eller mapper over Internett, er det bedre å komprimere innholdet før overføring. Dette gjør oppgaven raskere. Du kan bruke python-skript for å komprimere og pakke ut hvilken som helst stor fil eller katalog. zipfil modul av python brukes til å gjøre oppgaven. Hvordan du kan bruke python3 til å komprimere hvilken som helst fil eller katalog, vises i denne veiledningen ved hjelp av forskjellige eksempler.

Eksempel 1: Komprimere en enkelt fil

Opprett en ny fil med navnet 'postnummer1.py ' og legg til følgende kode. zipfil modulen importeres for å komprimere filen. temp.glidelås er tildelt som zip-filnavn med skrivemodus og neste, det opprinnelige filnavnet, temp.tekst og komprimeringstype er gitt som parametere i skrivemetoden.

importer zip-fil
zip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_file.skriv ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.Lukk()

Kjør skriptet

$ python3 postnummer1.py

Størrelsen til temp.tekst er 27 byte og etter komprimering, størrelsen på temp.glidelås er 2 byte.

Eksempel 2: Komprimere en bestemt katalog

Opprett en ny fil med navnet 'postnummer2.py ' og legg til følgende kode. En katalog kan inneholde mange filer, mapper og undermapper. For å lese innholdet i katalogen, os modul av python importeres med zipfil modul for å komprimere katalogen. I dette skriptet, mydir katalog brukes for komprimering.

# importer nødvendige moduler
 
importer os
importer zip-fil
 
 
# Erklær funksjonen for å returnere alle filstier i den aktuelle katalogen
def retrieve_file_paths (dirName):
 
# oppsett filstier variabel
filePaths = []
 
# Les alle kataloger, underkataloger og fillister
for root, kataloger, filer i os.gå (dirName):
for filnavn i filer:
# Opprett hele filveien ved hjelp av os-modulen.
filePath = os.sti.bli med (rot, filnavn)
filePaths.legge til (filePath)
 
# returner alle stier
return filePaths
 
 
# Erklær hovedfunksjonen
def main ():
# Tilordne navnet på katalogen som skal zipes
dir_name = 'mydir'
 
# Ring funksjonen for å hente alle filer og mapper i den tildelte katalogen
filePaths = retrieve_file_paths (dir_name)
 
# skriver ut listen over alle filene som skal zippes
print ('Følgende liste over filer vil bli zippet:')
for filnavn i filstier:
skriv ut (filnavn)
 
# skriver filer til en zip-fil
zip_file = zipfile.ZipFile (dir_name + '.zip ',' w ')
med zip_file:
# skriver hver fil en etter en
for fil i filePaths:
zip_file.skriv (fil)
 
skriv ut (dir_name + '.zip-filen er opprettet!')
 
# Ring hovedfunksjonen
hvis __name__ == "__main__":
hoved()

Kjør skriptet

$ python3 postnummer2.py

Størrelsen til mydir er 21 byte og etter komprimering, størrelsen på mydir.glidelås er 2 byte.

Eksempel 3: Komprimere en katalog gitt av kommandolinjeargumentet

Opprett en ny fil med navnet 'postnummer3.py ' og legg til følgende kode. For å lese kommandolinjeverdien, en annen python-modul sys importeres med os og zipfil moduler.

# importer nødvendige moduler
 
importer os
importer sys
importer zip-fil
 
# Erklær funksjonen for å returnere alle filstier i en bestemt katalog
def retrieve_file_paths (dirName):
 
# oppsett filstier variabel
filePaths = []
 
# Les alle kataloger, underkataloger og fillister
for root, kataloger, filer i os.gå (dirName):
for filnavn i filer:
# Opprett hele filveien ved hjelp av os-modulen.
filePath = os.sti.bli med (rot, filnavn)
filePaths.legge til (filePath)
 
# returner alle stier
return filePaths
 
 
# Erklær hovedfunksjonen
def main ():
 
# Kontroller at to argumenter gis når skriptet kjøres
hvis len (sys.argv) != 2:
skriv ut ("Du har angitt navnet på katalogen som skal zip")
sys.utgang (1)
 
# Angi katalognavnet fra kommandoargumentet
dir_name = sys.argv [1]
 
# Angi zip-filnavnet
zipFileName = dir_name + ".glidelås"
 
# Ring funksjonen for å hente alle filer og mapper i den tildelte katalogen
filePaths = retrieve_file_paths (dir_name)
 
# skriv ut listen over filer som skal zippes
skriv ut ('Følgende liste over filer vil bli zippet:')
for filnavn i filstier:
skriv ut (filnavn)
 
# skriv filer og mapper til en zip-fil
zip_file = zipfile.ZipFile (zipFileName, 'w')
med zip_file:
# skriv hver fil separat
for fil i filePaths:
zip_file.skriv (fil)
 
print (zipFileName + '-fil er opprettet!')
 
# Ring hovedfunksjonen
hvis __name__ == "__main__":
hoved()

Kjør skriptet

$ python3 postnummer3.py

test er gitt som katalognavn i kommandolinjeargumentet. Størrelsen til test er 21 byte og etter komprimering, størrelsen på test.glidelås er 2 byte.

Jeg håper, denne opplæringen vil hjelpe deg å bruke python til å komprimere hvilken som helst fil eller katalog.

Mus Hvordan endre venstre og høyre museknapp på Windows 10 PC
Hvordan endre venstre og høyre museknapp på Windows 10 PC
Det er ganske vanlig at alle datamusenheter er ergonomisk designet for høyrehendte brukere. Men det er tilgjengelige musenheter som er spesielt design...
Mus Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Bruk av mus eller tastatur i feil stilling for overdreven bruk kan føre til mange helseproblemer, inkludert belastning, karpaltunnelsyndrom og mer. I ...
Mus Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
De siste årene har datamaskiner og operativsystemer utviklet seg sterkt. Det var en tid da brukere måtte bruke kommandoer for å navigere gjennom filad...