1. példa: Egyetlen fájl tömörítése
Hozzon létre egy új fájlt, amelynek neve:irányítószám1.py ' és adja hozzá a következő kódot. ZIP fájl modul importálva van a fájl tömörítésére. temp.postai irányítószám zip fájlnévként van megadva írási üzemmóddal és ezután az eredeti fájlnévvel, temp.txt és a tömörítés típusa paraméterként szerepel az írási módszerben.
importálja a zip fájltzip_file = zipfile.ZipFile ('temp.zip ',' w ')
ZIP fájl.write ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
ZIP fájl.Bezárás()
Futtassa a szkriptet
$ python3 irányítószám1.pyMérete temp.txt van 27 bájt és összenyomás után a méret temp.postai irányítószám van 2 bájt.
2. példa: Egy adott könyvtár tömörítése
Hozzon létre egy új fájlt, amelynek neve:irányítószám2.py ' és adja hozzá a következő kódot. Egy könyvtár sok fájlt, mappát és almappát tartalmazhat. A könyvtár tartalmának elolvasása, os a python modulja importálva van ZIP fájl modul a könyvtár tömörítésére. Ebben a forgatókönyvben, mydir könyvtárat használjuk a tömörítéshez.
# importálja a szükséges modulokatimport os
importálja a zip fájlt
# Nyújtsa be a függvényt az adott könyvtár összes fájlútjának visszaadásához
def retrieve_file_paths (dirName):
# beállítási fájl elérési útja változó
filePaths = []
# Olvassa el az összes könyvtárat, alkönyvtárakat és fájllistákat
root, könyvtárak, fájlok os-ban.séta (dirName):
fájlok fájlnevéhez:
# Hozza létre a teljes fájlútvonalat az os modul használatával.
filePath = os.pálya.csatlakozás (root, fájlnév)
filePaths.függelék (filePath)
# adja vissza az összes utat
return filePaths
# Nyissa meg a fő funkciót
def main ():
# Rendelje hozzá a könyvtár nevét a ZIP-hez
dir_name = 'mydir'
# Hívja meg a függvényt a hozzárendelt könyvtár összes fájljának és mappájának letöltéséhez
filePaths = retrieve_file_paths (dir_name)
# kinyomtatja az összes tömörítendő fájl listáját
print ('A következő fájllistát tömörítjük:')
a fileName fájlhoz a filePaths fájlban:
nyomtatás (fájlnév)
# fájlokat ír egy zip fájlba
zip_file = zipfile.ZipFile (dir_name + '.zip ',' w ')
a zip_file segítségével:
# minden fájlt egyesével ír
fájlhoz a filePaths fájlban:
ZIP fájl.ír (fájl)
print (dir_name + '.a zip fájl sikeresen létrehozva!')
# Hívja meg a fő funkciót
ha __name__ == "__main__":
fő()
Futtassa a szkriptet
$ python3 irányítószám2.pyMérete mydir van 21 bájt és összenyomás után a méret mydir.postai irányítószám van 2 bájt.
3. példa: A parancssori argumentummal megadott könyvtár tömörítése
Hozzon létre egy új fájlt, amelynek neve:irányítószám3.py ' és adja hozzá a következő kódot. A parancssor értékének kiolvasásához egy másik python modul sys importálva van os és ZIP fájl modulok.
# importálja a szükséges modulokatimport os
import sys
importálja a zip fájlt
# Nyújtsa be a függvényt egy adott könyvtár összes fájlútjának visszatérésére
def retrieve_file_paths (dirName):
# beállítási fájl elérési útja változó
filePaths = []
# Olvassa el az összes könyvtárat, alkönyvtárakat és fájllistákat
root, könyvtárak, fájlok os-ban.séta (dirName):
fájlok fájlnevéhez:
# Hozza létre a teljes fájlútvonalat az os modul használatával.
filePath = os.pálya.csatlakozás (root, fájlnév)
filePaths.függelék (filePath)
# adja vissza az összes utat
return filePaths
# Nyissa meg a fő funkciót
def main ():
# Ellenőrizze, hogy két argumentum van-e megadva a szkript futtatásakor
ha len (sys.argv) != 2:
print ("Meg kell adnia a könyvtár nevét a tömörítéshez")
sys.kilépés (1)
# Állítsa be a könyvtár nevét a parancs argumentumból
dir_name = sys.argv [1]
# Állítsa be a zip fájl nevét
zipFileName = dir_name + ".postai irányítószám"
# Hívja meg a függvényt a hozzárendelt könyvtár összes fájljának és mappájának letöltéséhez
filePaths = retrieve_file_paths (dir_name)
# kinyomtatja a tömörítendő fájlok listáját
nyomtatás ('A következő fájllistát tömörítjük:')
a fileName fájlhoz a filePaths fájlban:
nyomtatás (fájlnév)
# fájlokat és mappákat írjon egy zip fájlba
zip_file = zipfile.ZipFile (zipFileName, 'w')
a zip_file segítségével:
# minden fájlt külön írjon
fájlhoz a filePaths fájlban:
ZIP fájl.ír (fájl)
print (zipFileName + 'fájl sikeresen létrehozva!')
# Hívja meg a fő funkciót
ha __name__ == "__main__":
fő()
Futtassa a szkriptet
$ python3 irányítószám3.pyteszt könyvtárnévként van megadva a parancssori argumentumban. Mérete teszt van 21 bájt és összenyomás után a méret teszt.postai irányítószám van 2 bájt.
Remélem, ez az oktatóanyag segít a python használatában bármely fájl vagy könyvtár tömörítésében.