Voorbeeld-1: Een enkel bestand comprimeren
Maak een nieuw bestand met de naam 'postcode1.py' en voeg de volgende code toe:. Zip bestand module wordt geïmporteerd om het bestand te comprimeren. temp.zip wordt toegewezen als zip-bestandsnaam met schrijfmodus en vervolgens de originele bestandsnaam, temp.tekst en compressietype worden gegeven als parameters in de schrijfmethode.
zipbestand importerenzip_file = zipbestand.ZipFile('temp.zip', 'w')
Zip bestand.schrijven('temp.txt', compress_type=zipbestand.ZIP_DEFLATED)
Zip bestand.dichtbij()
Voer het script uit
$ python3 postcode1.pyDe grootte van temp.tekst is 27 bytes en na compressie, de grootte van temp.zip is 2 bytes.
Voorbeeld-2: Een bepaalde map comprimeren
Maak een nieuw bestand met de naam 'postcode2.py' en voeg de volgende code toe:. Een map kan veel bestanden, mappen en submappen bevatten. Om de inhoud van de directory te lezen:, os module van python wordt geïmporteerd met Zip bestand module om de map te comprimeren. In dit script, mijndir directory wordt gebruikt voor compressie.
# importeer vereiste modulesimporteer os
zipbestand importeren
# Declareer de functie om alle bestandspaden van de specifieke map terug te geven
def retrieve_file_paths(dirName):
# setup bestandspaden variabele
bestandspaden = []
# Lees alle directory's, subdirectories en bestandslijsten
voor root, mappen, bestanden in os.lopen (dirName):
voor bestandsnaam in bestanden:
# Maak het volledige bestandspad met behulp van de os-module.
filePath = os.pad.join(root, bestandsnaam)
bestandspaden.toevoegen(bestandspad)
# geef alle paden terug
return filePaths
# Verklaar de hoofdfunctie
def hoofd():
# Wijs de naam van de map toe aan zip
dir_name = 'mijnmap'
# Roep de functie op om alle bestanden en mappen van de toegewezen map op te halen
filePaths = retrieve_file_paths(dir_name)
# afdrukken van de lijst met alle bestanden die moeten worden gecomprimeerd
print('De volgende lijst met bestanden wordt gezipt:')
voor bestandsnaam in bestandspaden:
print(bestandsnaam)
# bestanden schrijven naar een zipbestand
zip_file = zipbestand.ZipFile(dir_name+'.zip', 'w')
met zip_file:
# elk bestand één voor één schrijven
voor bestand in filePaths:
Zip bestand.schrijven (bestand)
print(dir_name+'.zip-bestand is succesvol aangemaakt!')
# Roep de hoofdfunctie op
if __name__ == "__main__":
hoofd()
Voer het script uit
$ python3 postcode2.pyDe grootte van mijndir is 21 bytes en na compressie, de grootte van mijndir.zip is 2 bytes.
Voorbeeld-3: Een map comprimeren die wordt gegeven door een opdrachtregelargument
Maak een nieuw bestand met de naam 'postcode3.py' en voeg de volgende code toe:. Om de opdrachtregelwaarde te lezen, een andere python-module sys wordt geïmporteerd met os en Zip bestand modules.
# importeer vereiste modulesimporteer os
import systeem
zipbestand importeren
# Declareer de functie om alle bestandspaden van een bepaalde map terug te geven
def retrieve_file_paths(dirName):
# setup bestandspaden variabele
bestandspaden = []
# Lees alle directory's, subdirectories en bestandslijsten
voor root, mappen, bestanden in os.lopen (dirName):
voor bestandsnaam in bestanden:
# Maak het volledige bestandspad met behulp van de os-module.
filePath = os.pad.join(root, bestandsnaam)
bestandspaden.toevoegen(bestandspad)
# geef alle paden terug
return filePaths
# Verklaar de hoofdfunctie
def hoofd():
# Controleer of er twee argumenten zijn gegeven op het moment dat het script wordt uitgevoerd
als len (sys.argv) != 2 :
print ("U heeft de naam van de te zippen map ingevoerd")
sys.uitgang (1)
# Stel de mapnaam in vanuit het opdrachtargument
dir_name = sys.argv[1]
# Stel de naam van het zipbestand in
zipFileName = dir_name + ".zip"
# Roep de functie op om alle bestanden en mappen van de toegewezen map op te halen
filePaths = retrieve_file_paths(dir_name)
# print de lijst met bestanden die moeten worden gecomprimeerd
print('De volgende lijst met bestanden wordt gezipt:')
voor bestandsnaam in bestandspaden:
print(bestandsnaam)
# schrijf bestanden en mappen naar een zipbestand
zip_file = zipbestand.ZipFile(zipFileName, 'w')
met zip_file:
# schrijf elk bestand apart
voor bestand in filePaths:
Zip bestand.schrijven (bestand)
print(zipFileName+'-bestand is succesvol aangemaakt!')
# Roep de hoofdfunctie op
if __name__ == "__main__":
hoofd()
Voer het script uit
$ python3 postcode3.pytest wordt gegeven als mapnaam in het opdrachtregelargument. De grootte van test is 21 bytes en na compressie, de grootte van test.zip is 2 bytes.
Ik hoop dat deze tutorial je zal helpen om python te gebruiken voor het comprimeren van elk bestand of map.