[python] vytovoreni komprimovaneho souboru z adresare

geon geon na post.cz
Úterý Leden 3 21:57:38 CET 2006


rajcze napsal(a):
> ahojte,
> ani po usilovnem googleni se mi nepodarilo prijit na zpusob, jak
> zkomprimovat adresar. nasel jsem nekolik tutorialu, ktere popisuji
> vytvoreni kompromovaneho souboru pomoci mofulu gzip, ale vsude jde jen
> o zapsani neceho do gzip.GzipFile
> jak se da zkoprimovat adresar?
>   
gzip není zip. Zip umí zkomprivat více souborů do jednoho, to gzip 
neumí. Ten umí jen jeden soubor do jednoho balíku. No a pak musíš ty 
balíky nějak zarchivovat - buď tar nebo zipfile.

Malá ukázka čistého gzip (tar či zip doplň sám nebo někdo jiný přispěje 
...): zbalení (gzip) všech souborů v aktuálním adresáři

import gzip, os

seznam=[s for s in os.listdir('.') if os.path.isfile(s)]

for s in seznam:
    g=gzip.GzipFile(s+'.gz','w')
    x=file(s,'rb').read()  # 'rb' je důležité nejen pro binárky, ale i 
pro .doc, .xls, apod...
    g.write(x)
    g.close()
   



-- 
geon
Vyjímka je pravidlo. Rekurzivní.




Další informace o konferenci Python