Python

Izmantojiet pitonu, lai saspiestu failu un direktoriju

Izmantojiet pitonu, lai saspiestu failu un direktoriju
Saspiestā failā ir daudz failu, direktoriju un apakšdirektoriju. Ir pieejamas daudzas lietojumprogrammas, lai izveidotu jebkura liela faila vai direktorija saspiestu failu un izgūtu failus vai mapes, izvilkot saspiestu failu. Ja mēs vēlamies jebkuru lielu mapi vai mapi pārsūtīt pa internetu, pirms pārsūtīšanas ir labāk saspiest saturu. Tas padara uzdevumu ātrāku. Jebkura liela faila vai direktorija saspiešanai un izvilkšanai varat izmantot pitona skriptus. zipfails uzdevuma veikšanai tiek izmantots pitona modulis. Šajā apmācībā ir parādīts, kā jūs varat izmantot python3 jebkura faila vai direktorija saspiešanai, izmantojot dažādus piemērus.

1. piemērs: Viena faila saspiešana

Izveidojiet jaunu failu ar nosaukumupasta indekss.py ' un pievienojiet šādu kodu. zipfails modulis tiek importēts, lai saspiestu failu. temp.zip tiek piešķirts kā zip faila nosaukums ar rakstīšanas režīmu un nākamais - sākotnējais faila nosaukums, temp.txt un saspiest tips rakstīšanas metodē tiek norādīti kā parametri.

importēt ZIP failu
zip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_file.rakstīt ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.aizvērt ()

Palaidiet skriptu

$ python3 pasta indekss1.py

Izmērs temp.txt ir 27 baiti un pēc saspiešanas - temp.zip ir 2 baiti.

2. piemērs: konkrēta direktorija saspiešana

Izveidojiet jaunu failu ar nosaukumupasta indekss2.py ' un pievienojiet šādu kodu. Katalogā var būt daudz failu, mapju un apakšmapju. Lai lasītu direktorija saturu, os modulis python tiek importēts ar zipfails modulis, lai saspiestu direktoriju. Šajā scenārijā, mydir direktoriju izmanto saspiešanai.

# importēt nepieciešamos moduļus
 
importēt os
importēt ZIP failu
 
 
# Deklarējiet funkciju, lai atgrieztu visus konkrētā direktorija failu ceļus
def retrieve_file_paths (dirName):
 
# iestatīšanas faila ceļu mainīgais
filePaths = []
 
# Lasiet visus direktorijus, apakšdirektorijus un failu sarakstus
saknēm, direktorijiem, failiem os.staigāt (dirName):
faila nosaukumam failos:
# Izveidojiet pilnu faila ceļu, izmantojot os moduli.
filePath = os.ceļš.pievienoties (sakne, faila nosaukums)
filePaths.pievienot (filePath)
 
# atgriezt visus ceļus
atgriezt filePaths
 
 
# Paziņojiet galveno funkciju
def main ():
# Piešķiriet direktorija nosaukumu saspiest
dir_name = 'mydir'
 
# Izsauciet funkciju, lai izgūtu visus piešķirtā direktorija failus un mapes
filePaths = retrieve_file_paths (dir_name)
 
# visu saspiesto failu saraksta drukāšana
drukāt ('Šāds failu saraksts tiks saspiests:')
failam FileName mapē filePaths:
drukāt (fileName)
 
# failu rakstīšana ZIP failā
zip_file = zipfile.ZipFile (dir_name + '.zip ',' w ')
ar zip_file:
# rakstot katru failu pa vienam
failam failā pathPaths:
zip_file.rakstīt (fails)
 
drukāt (dir_name + '.zip fails ir veiksmīgi izveidots!')
 
# Izsauciet galveno funkciju
ja __nosaukums == "__main__":
galvenais ()

Palaidiet skriptu

$ python3 pasta indekss2.py

Izmērs mydir ir 21 baits un pēc saspiešanas - mydir.zip ir 2 baiti.

3. piemērs: direktorijas saspiešana, izmantojot komandrindas argumentu

Izveidojiet jaunu failu ar nosaukumupasta indekss3.py ' un pievienojiet šādu kodu. Lai nolasītu komandrindas vērtību, vēl viens python modulis sys tiek importēts ar os un zipfails moduļi.

# importēt nepieciešamos moduļus
 
importēt os
importa sys
importēt ZIP failu
 
# Deklarējiet funkciju, lai atgrieztu visus konkrētā direktorija failu ceļus
def retrieve_file_paths (dirName):
 
# iestatīšanas faila ceļu mainīgais
filePaths = []
 
# Lasiet visus direktorijus, apakšdirektorijus un failu sarakstus
saknēm, direktorijiem, failiem os.staigāt (dirName):
faila nosaukumam failos:
# Izveidojiet pilnu faila ceļu, izmantojot os moduli.
filePath = os.ceļš.pievienoties (sakne, faila nosaukums)
filePaths.pievienot (filePath)
 
# atgriezt visus ceļus
atgriezt filePaths
 
 
# Paziņojiet galveno funkciju
def main ():
 
# Pārbaudiet, vai skripta palaišanas laikā ir norādīti divi argumenti
ja len (sys.argv) != 2:
drukāt ("Jums ir jāievada direktorija nosaukums, lai izveidotu ZIP kodu")
sys.izeja (1)
 
# Iestatiet direktorijas nosaukumu no komandas argumenta
dir_name = sys.argv [1]
 
# Iestatiet zip faila nosaukumu
zipFileName = dir_name + ".zip "
 
# Izsauciet funkciju, lai izgūtu visus piešķirtā direktorija failus un mapes
filePaths = retrieve_file_paths (dir_name)
 
# izdrukāt saspiesto failu sarakstu
drukāt ('Šāds failu saraksts tiks saspiests:')
failam FileName mapē filePaths:
drukāt (fileName)
 
# rakstīt failus un mapes zip failā
zip_file = zipfile.ZipFile (zipFileName, 'w')
ar zip_file:
# rakstiet katru failu atsevišķi
failam failā pathPaths:
zip_file.rakstīt (fails)
 
print (zipFileName + 'fails ir veiksmīgi izveidots!')
 
# Izsauciet galveno funkciju
ja __nosaukums == "__main__":
galvenais ()

Palaidiet skriptu

$ python3 pasta indekss3.py

pārbaude tiek norādīts kā direktorijas nosaukums komandrindas argumentā. Izmērs pārbaude ir 21 baits un pēc saspiešanas - pārbaude.zip ir 2 baiti.

Es ceru, ka šī apmācība palīdzēs jums izmantot pitonu jebkura faila vai direktorija saspiešanai.

5 labākās arkādes spēles Linux
Mūsdienās datori ir nopietnas mašīnas, kuras izmanto spēlēšanai. Ja jūs nevarat iegūt jauno augsto rezultātu, jūs zināt, ko es domāju. Šajā ierakstā j...
Cīņa par Vesnotu 1.13.6 Izlaista attīstība
Cīņa par Vesnotu 1.13.6 izlaists pagājušajā mēnesī, ir sestais izstrādes izlaidums 1.13.x sērija un tā nodrošina vairākus uzlabojumus, īpaši lietotāja...
Kā instalēt League of Legends operētājsistēmā Ubuntu 14.04
Ja jūs esat League of Legends fans, tad šī ir iespēja jums izmēģināt League of Legends. Ņemiet vērā, ka LOL tiek atbalstīts PlayOnLinux, ja esat Linux...