1 pavyzdys: vieno failo glaudinimas
Sukurkite naują failą pavadinimu „pašto kodas.py ' ir pridėkite šį kodą. pašto failą modulis importuojamas norint suspausti failą. temp.užtrauktukas priskiriamas kaip ZIP failo pavadinimas su rašymo režimu ir kitas - originalus failo vardas, temp.txt ir suspausti tipas yra nurodomi kaip parametrai rašymo metode.
importuoti ZIP failązip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_file.rašyti ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.Uždaryti()
Paleiskite scenarijų
$ python3 pašto kodas1.pyDydis temp.txt yra 27 baitai o po suspaudimo - dydis temp.užtrauktukas yra 2 baitai.
2 pavyzdys: tam tikro katalogo suspaudimas
Sukurkite naują failą pavadinimu „pašto kodas2.py ' ir pridėkite šį kodą. Kataloge gali būti daug failų, aplankų ir pakatalogių. Norėdami perskaityti katalogo turinį, os python modulis yra importuojamas su pašto failą modulis katalogui suspausti. Šiame scenarijuje, mydir katalogas naudojamas glaudinimui.
# importuoti reikalingus moduliusimportuoti os
importuoti ZIP failą
# Paskelbkite funkciją, kad būtų grąžinti visi konkretaus katalogo failų keliai
def retrieve_file_paths (dirName):
# sąrankos failų kelių kintamasis
filePaths = []
# Perskaitykite visus katalogus, pakatalogius ir failų sąrašus
root, katalogams, failams OS.vaikščioti (dirName):
failo vardui failuose:
# Sukurkite visą failų kelią naudodami os modulį.
filePath = os.kelias.prisijungti (šaknis, failo vardas)
filePaths.pridėti („filePath“)
# grąžinti visus kelius
grąžinti „filePaths“
# Paskelbkite pagrindinę funkciją
def pagrindinis ():
# Priskirkite katalogo pavadinimą, kurį norite užklijuoti
dir_name = 'mydir'
# Norėdami iškviesti visus priskirtojo katalogo failus ir aplankus, iškvieskite funkciją
filePaths = retrieve_file_paths (dir_name)
# atspausdinsite visų failų, kuriuos norite atsisiųsti, sąrašą
spausdinti ('Užtrauktas toks failų sąrašas:')
„fileName“ failo keliuose:
spausdinti (fileName)
# failų rašymas į ZIP failą
zip_file = zipfile.ZipFile (dir_name + '.zip ',' w ')
su zip_file:
# rašo kiekvieną failą po vieną
failui „filePaths“:
zip_file.rašyti (failas)
spausdinti (dir_name + '.ZIP failas sėkmingai sukurtas!„)
# Iškvieskite pagrindinę funkciją
jei __pavadinimas = = "__main__":
pagrindinis ()
Paleiskite scenarijų
$ python3 pašto kodas2.pyDydis mydir yra 21 baitas o po suspaudimo - dydis mydir.užtrauktukas yra 2 baitai.
3 pavyzdys: Komandos, pateiktos komandinės eilutės argumentu, suspaudimas
Sukurkite naują failą pavadinimu „pašto kodas3.py ' ir pridėkite šį kodą. Norėdami perskaityti komandinės eilutės vertę, dar vienas python modulis sys yra importuojamas su os ir pašto failą moduliai.
# importuoti reikalingus moduliusimportuoti os
importuoti sistemas
importuoti ZIP failą
# Paskelbkite funkciją, kad būtų grąžinti visi tam tikro katalogo failų keliai
def retrieve_file_paths (dirName):
# sąrankos failų kelių kintamasis
filePaths = []
# Perskaitykite visus katalogus, pakatalogius ir failų sąrašus
root, katalogams, failams OS.vaikščioti (dirName):
failo vardui failuose:
# Sukurkite visą failų kelią naudodami os modulį.
filePath = os.kelias.prisijungti (šaknis, failo vardas)
filePaths.pridėti („filePath“)
# grąžinti visus kelius
grąžinti „filePaths“
# Paskelbkite pagrindinę funkciją
def pagrindinis ():
# Patikrinkite du argumentus, pateiktus vykdant scenarijų
jei len (sys.argv) != 2:
spausdinti ("Jūs turite įvesti katalogo pavadinimą, kurį norite atsisiųsti")
sys.išėjimas (1)
# Nustatykite katalogo pavadinimą iš komandos argumento
dir_name = sys.argv [1]
# Nustatykite ZIP failo pavadinimą
zipFileName = dir_name + ".zip "
# Norėdami iškviesti visus priskirtojo katalogo failus ir aplankus, iškvieskite funkciją
filePaths = retrieve_file_paths (dir_name)
# atsispausdinti failų, kuriuos reikia atsisiųsti, sąrašą
spausdinti ('Užtrauktas toks failų sąrašas:')
„fileName“ failo keliuose:
spausdinti (fileName)
# rašyti failus ir aplankus į ZIP failą
zip_file = zipfile.„ZipFile“ („zipFileName“, „w“)
su zip_file:
# rašykite kiekvieną failą atskirai
failui „filePaths“:
zip_file.rašyti (failas)
spausdinti (failas „zipFileName +“ sėkmingai sukurtas!„)
# Iškvieskite pagrindinę funkciją
jei __pavadinimas = = "__main__":
pagrindinis ()
Paleiskite scenarijų
$ python3 pašto kodas3.pytestas komandų eilutės argumente nurodomas kaip katalogo pavadinimas. Dydis testas yra 21 baitas o po suspaudimo - dydis testas.užtrauktukas yra 2 baitai.
Tikiuosi, ši pamoka padės jums naudoti „python“ bet kokiam failui ar katalogui suspausti.