A python használata fájl és könyvtár zipeléséhez

A tömörített fájl sok fájlt, könyvtárat és alkönyvtárat tartalmaz. Számos alkalmazás áll rendelkezésre bármilyen nagyméretű fájl vagy könyvtár tömörített fájljának létrehozására és a fájlok vagy mappák visszakeresésére a tömörített fájl kicsomagolásával. Ha bármilyen nagyméretű vagy mappát szeretnénk átvinni az interneten keresztül, akkor jobb, ha az átvitel előtt tömörítjük a tartalmat. Ez gyorsabbá teszi a feladatot. A python szkripteket használhatja bármely nagy fájl vagy könyvtár tömörítéséhez és kinyomtatásához. a python zipfile modulját a feladat elvégzésére használják. Ebben a bemutatóban különböző példákon keresztül mutatjuk be, hogyan lehet a python3 segítségével bármilyen fájlt vagy könyvtárat tömöríteni.

Készítsünk egy új fájlt ‘zipcode1.py’ néven, és adjuk hozzá a következő kódot. a zipfile modult importáljuk a fájl tömörítéséhez. a temp.zip fájlt zip fájlnévként írási móddal rendeljük hozzá, majd az írási módban paraméterként megadjuk az eredeti fájlnevet, a temp.txt-t és a tömörítés típusát.

import zipfile
zip_file = zipfile.ZipFile(‘temp.zip’, ‘w’)
zip_file.write(‘temp.txt’, compress_type=zipfile.ZIP_DEFLATED)
zip_file.close()

A script futtatása

$ python3 zipcode1.py

A temp.txt mérete 27 bájt, a tömörítés után pedig a temp.zip mérete 2 bájt.

Példa-2: Egy adott könyvtár tömörítése

Készítsünk egy új fájlt ‘zipcode2.py’ néven, és adjuk 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 kiolvasásához a python os modulját importáljuk a zipfile modullal a könyvtár tömörítéséhez. Ebben a szkriptben a mydir könyvtárat használjuk a tömörítéshez.

# import szükséges modulok
import os
import zipfile
# Deklaráljuk a függvényt, amely visszaadja az adott könyvtár összes fájlútvonalát
def retrieve_file_paths(dirName):
# file paths változó beállítása
filePaths =
# Minden könyvtár, alkönyvtár és fájllista beolvasása
a gyökér, könyvtárak, fájlok esetén az os.walk(dirName):
for filename in files:
# A teljes fájlútvonal létrehozása az os modul segítségével.
filePath = os.path.join(root, filename)
filePaths.append(filePath)
# return all paths
return filePaths
# Declare the main function
def main():
# Adjuk meg a zipelni kívánt könyvtár nevét
dir_name = ‘mydir’
# Hívjuk meg a függvényt a kijelölt könyvtár összes fájljának és mappájának kinyerésére
filePaths = retrieve_file_paths(dir_name)
# a zipelni kívánt fájlok listájának kiírása
print(‘A következő fájlok listája lesz zipelve:’)
for fileName in filePaths:
print(fileName)
# fájlok írása egy zipfájlba
zip_file = zipfile.ZipFile(dir_név+’.zip’, ‘w’)
with zip_file:
# egyesével írja ki az egyes fájlokat
for file in filePaths:
zip_file.write(file)
print(dir_név+’.zip fájl sikeresen létrejött!’)
# A main függvény hívása
if __name__ == “__main__”:
main()

Futtassa a szkriptet

$ python3 zipcode2.py

A mydir mérete 21 bájt, a tömörítés után a mydir.zip mérete 2 bájt.

Példa-3: Parancssori argumentummal megadott könyvtár tömörítése

Készítsünk egy új fájlt ‘zipcode3.py’ néven, és adjuk hozzá a következő kódot. A parancssori érték beolvasásához egy másik sys python modult importálunk az os és zipfile modulokkal együtt.

# import szükséges modulok
import os
import sys
import zipfile
# Deklaráljuk a függvényt egy adott könyvtár összes fájlútvonalának visszaadására
def retrieve_file_paths(dirName):
# file paths változó beállítása
filePaths =
# Minden könyvtár, alkönyvtár és fájllista beolvasása
a root, könyvtárak, fájlok számára az os.walk(dirName):
for filename in files:
# A teljes fájlútvonal létrehozása az os modul segítségével.
filePath = os.path.join(root, filename)
filePaths.append(filePath)
# return all paths
return filePaths
# Deklaráljuk a main függvényt
def main():
# Ellenőrizzük, hogy a script futtatásakor két argumentumot adtunk meg
if len (sys.argv) != 2 :
print (“You have enter the name of the directory to zip”)
sys.exit (1)
# A könyvtár nevének beállítása a parancs argumentumából
dir_name = sys.argv
# A zip-fájl nevének beállítása
zipFileName = dir_name + “.zip”
# Hívja meg a függvényt a kijelölt könyvtár összes fájljának és mappájának lekérdezésére
filePaths = retrieve_file_paths(dir_name)
# nyomtassa ki a csomagolandó fájlok listáját
print(‘The following list of files will be zippped:’)
for fileName in filePaths:
print(fileName)
# fájlok és mappák írása egy zipfileba
zip_file = zipfile.ZipFile(zipFileName, ‘w’)
with zip_file:
# minden fájlt külön-külön írunk
for file in filePaths:
zip_file.write(file)
print(zipFileName+’ fájl létrehozása sikeres!’)
# Hívjuk a main függvényt
if __name__ == “__main__”:
main()

Futtassuk a szkriptet

$ python3 zipcode3.py

teszt könyvtárnévként a parancssori argumentumban. A test mérete 21 bájt, és a tömörítés után a test.zip mérete 2 bájt.

Remélem, ez a bemutató segít abban, hogy a python segítségével bármilyen fájlt vagy könyvtárat tömöríthessünk.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.