[python] Pozor na potize s paralelnim bzip2 (pbzip2, lbzip2)

Vladimir Macek macek na sandbox.cz
Úterý Leden 6 09:34:08 CET 2015


Ahoj, varovani:

Zacali jsme pred casem na logy pouzivat paralelni kompresor pbzip2.
Nadherne zrychli kompresi!

Z principu ale vytvari tzv. multi-stream tvar, tedy vice bzip2 proudu v
serii. Proto jeho format neni zcela kompatibilni s puvodnim bzip2.
Dekomprese v shellu nicmene nevykazuje problemy, napriklad pomoci
standardniho bzip2, bzcat).

Dnes jsem se ale spalil, protoze modul bz2 z Pythonu 2.6 ani 2.7 tento
multi-stream bzip2 neumi nacist:

BEZ INDIKACE CHYBY (!) skonci dekompresi po n-stovkach tisic bajtu (zalezi
na tom, jak byl pbzip2 spusten). Je to znamy problem, jehoz reseni se
vyvojari rozhodli nebackportovat z Python 3, pouze ho zdokumentovat:
http://bugs.python.org/issue1625.

Obejdu to pomozi os.popen('bzcat ...').

Takze, na bz2 nespolehat! Neni vsechno ruzove...

-- 
:  Vladimir Macek  :  http://macek.sandbox.cz  :  +420 608 978 164
:  UNIX && Dev || Training  :  Python, Django  :  PGP key 97330EBD




Další informace o konferenci Python