Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Zipping ir elegants veids, kā saspiest vairākus failus un apvienot tos vienā. Tas ietaupa ne tikai krātuves vietu, bet arī joslas platumu, pārsūtot failu tīklā. Viena no labākajām zip funkcijām ir tā, ka tā darbojas visās galvenajās platformās: Windows, Linux un Mac.

Zip izmanto bezzudumu saspiešanu, lai saglabātu visus datus, tos saspiežot un atspiežot. Varat arī šifrēt un atšifrēt savus zip failus.

Izmantojot tik daudz izpētāmo funkciju, atklājiet, kā varat lasīt, zip un izpakot failus, izmantojot Python zipfile moduli.

Kas ir zipfile modulis?

Varat izmantot standarta zipfile moduli, lai manipulētu ar zip failiem, izmantojot Python. Izmantojot šo moduli, varat atvērt un lasīt zip failus, lasīt to metadatus, izveidot zip failu, saspiest to un izpakot failus. Ir pieejamas trīs saspiešanas metodes: Deflate, Bzip2 un LZMA.

Viena no lietām, kas modulim trūkst, ir spēja apstrādāt vairāku disku failus, taču tas apstrādā ZIP64 paplašinājumu. Tas var arī atšifrēt zip arhīvus, bet ne šifrēt tos. Izmantojot zipfile moduli, varat iegūt zip faila metadatus, piemēram, modifikācijas datumu un laiku. Varat arī iegūt informāciju, piemēram, operētājsistēmu, kas izmantota faila izveidei, zip versiju un faila lielumu gan saspiestā, gan nesaspiestā formātā.

instagram viewer

Kā saspiest failus, izmantojot Python

Varat saspiest vairākus failus vienā arhīvā, izmantojot Python zipfile moduli. Importēt ZipFile modulis no zip fails pakotni, lai veiktu nepieciešamās zip darbības. Arī importēt uz os modulis, lai atlasītu un saglabātu failus.

Definējiet funkciju get_all_file_paths(). Tam ir jāpieņem direktorija parametrs, kas satur ceļu uz mapi, kurā ir ZIP faili.

Inicializējiet tukšu sarakstu, kurā tiks saglabāts failu ceļu saraksts. Izmantojiet for cilpu, lai iegūtu pilnu mērķa direktorija saturu, izmantojot os.walk() funkciju. Šī funkcija ienes failu nosaukumus direktoriju kokā, pārvietojoties pa to, izmantojot lejupejošu vai augšupēju pieeju. Katram direktorijam funkcija atgriež trīs kopu, kurā ir sakne, dirs un faili.

Sakne ir virkne, kas satur pilnu ceļu uz direktoriju. Direktoru sarakstā ir iekļauti visi direktorijā esošie apakšdirektoriji. Failu sarakstā ir visi direktorijā esošie faili.

Cilpas iekšpusē paziņojiet citu cilpa, lai atkārtotu failu sarakstu. Izmantojiet os.path.join() funkcija, lai apvienotu direktorijas nosaukumu ar katru faila nosaukumu, lai izveidotu pilnīgu ceļu. Pēc tam pievienojiet šo pilno faila nosaukumu iepriekš izveidotajam sarakstam. Kad šī darbība ir pabeigta, atgrieziet failu ceļu sarakstu.

# importējiet nepieciešamos moduļus
no zip fails imports ZipFile
imports os

# izveidojiet funkciju, lai iegūtu visus faila ceļus
defget_all_file_paths(direktorijs):
# inicializē tukšu sarakstu, lai saglabātu failu ceļus
file_paths = []

# pārvietoties pa failiem
priekšsakne, katalogi, failusiekšāos.staigāt(direktoriju):
faila nosaukumam failos:
# pievienojieties saknei un faila nosaukumam, lai izveidotu pilnīgu faila ceļu
filepath = os.path.join (sakne, faila nosaukums)
failu_ceļi.pievienot(faila ceļš)

# atgriež visus faila ceļus
atgriezties failu_ceļi

Saglabājiet ceļu uz mapi, kurā ir faili, kurus vēlaties zip, mainīgajā, ko sauc par direktoriju. Izsaukt funkciju, get_all_file_paths() ko izveidojāt iepriekš, un saglabājiet vērtību, kurā tas atgriež failu_ceļi.

Parādiet lietotājam ziņojumu, lai informētu, ka šie ir faili, kurus programma zip. Atkārtojiet failus un parādiet to nosaukumus.

Nosūtiet nosaukumu, kuru vēlaties piešķirt zip failam, kā arī specifikāciju, ka programma atgriež rakstāmu failu, izmantojot priekšrakstu with, lai apstrādātu izņēmumus. Atkārtojiet katru failu un izmantojiet rakstāmā faila funkciju write () zip failā.

Kad darbība ir pabeigta, izvadiet ziņojumu, kurā paskaidrots, ka programma veiksmīgi saspieda visus failus.

# ceļš uz mapi, kuru vēlaties saspiest
direktorijs = './pythonzip'

# zvanīšanas funkcija, lai direktorijā iegūtu visus failu ceļus
file_paths = get_all_file_paths (direktorijs)

# drukājot visu to failu sarakstu, kurus vēlaties zip
drukāt('Tas failu saraksts, kas tiks saspiesti ar zip:')

faila_nosaukumam faila_ceļos:
drukāt(faila nosaukums)

# rakstot failus zip failā
ar ZipFile("mans_fails.zip", "w") zip:
# rakstiet katru failu pa vienam
failam failā file_paths:
rāvējslēdzējs.rakstiet(failu)

drukāt("Visi faili ir saspiesti!")

Kā izpakot failus, izmantojot Python

Failu izsaiņošana, izmantojot zipfile moduli, ir daudz vienkāršāka. Importēt zip fails iepakojums no ZipFile moduli un saglabājiet tā zip faila nosaukumu, kuru vēlaties iegūt mainīgajā. Izmantojiet priekšrakstu with, lai apstrādātu izņēmumus un atvērtu failu, kuru vēlaties izvilkt lasīšanas režīmā. Izmantojiet printdir() funkcija, lai parādītu zip failā esošo failu satura rādītāju.

Parādiet progresa ziņojumu, ka veicat failu izvilkšanu, un izmantojiet ekstrakts() funkcija, lai izvilktu zip faila saturu pašreizējā darba direktorijā. Varat arī iekļaut ceļa parametru, lai mainītu ceļu, kurā programma izvelk failus.

Parādiet ziņojumu, izmantojot drukāt paziņojums par operācijas pabeigšanu.

# nepieciešamo moduļu importēšana
no zip fails imports ZipFile

# nododiet tā zip faila nosaukumu, kuru vēlaties izvilkt
faila_nosaukums = "extract.zip"

# zip faila atvēršana lasīšanas režīmā
ar ZipFile (faila_nosaukums, "r") zip:
# parādīt zip faila saturu
rāvējslēdzējs.printdir()

# izvelk visus failus
drukāt("Notiek izvilkšana...")
rāvējslēdzējs.Extractall()
drukāt("Visi faili ir izvilkti!")

Vairāk par ZIP failiem

Zip faili ir ieguvuši lielu popularitāti un tiek izmantoti jau vairākus gadu desmitus. Populāras vietnes, piemēram, GitHub un Google disks, ļauj lejupielādēt failu kolekciju kā zip arhīvu. Zip programma saspiež failu kopu vienā pakotnē. Tas ir pretstatā tādam rīkam kā tar, kas iesaiņo failus kopā, bet nesaspiež tos.

Ja vēlaties šifrēt failus, izmantojot efektīvāku algoritmu, ieteicams izmantot RAR failus. RAR izmanto AES-128 algoritmu, kas ir labāks par deflācijas algoritmu, ko izmanto ZIP faili. Galu galā izvēlieties to, kas vislabāk atbilst jūsu vajadzībām.