ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python Gzip String Decompression 
    카테고리 없음 2016. 7. 25. 21:30
    Gzip Byte Stream data 를 decompression 하기 위해 zlib 내장 모듈의 decompress 함수를 사용하는 예이다.
    먼저  zlib.decompress 정의부터 살펴보자


    zlib.decompress(data, 16 + zlib.MAX_WBITS)

    zlib.decompress ( data [, wbits [, bufsize ] ] )

    + 압축된 데이터가 포함된 byte Object를 반환한 data의 바이트들을 압축해제한다.
    + wbits 항목은 data의 형식에 의존한다. 자세한 내용은 아래에서 살펴보자.
     + 만약 bufsize가 주어지면, output buffer의 크기를 초기화하는데 사용된다.
    + 오류가 발생하는경우 error exception이 발생한다. 


    wbits

    + wbits 변수는 history buffer( 혹은 window size)의 크기를 조정하고 어떤 헤더와 트레일러 포멧인지 예상한다.
    + compressobj() 항목과 유사하지만 값의 범위가 더 크다.
    • +8 to +15 : Window size의 2진수 로그이다. input에는 반드시 zlib헤더와 trailer가 포함되어야 한다.
    • 0 : zlib header 에 의해 자동적으로 결정되는 Window Size이다. zlib1.2.3.5 이상에서만 지원된다.
    • -8 to -15 : Window size의 로그로서 wbits의 절대값을 사용한다. input은 반드시 헤더와 trailer가 포함되지 않은 raw stream 이여야 한다.
    • +24 to +31 = 16 + ( 8 to 15 ) : 윈도우 크기로 로그값의 하위 4비트를 사용한다. input은 반드시 gzip 헤더와 trailer를 포함해야 한다. 
    • +40 to +47 = 32 + ( 8 to 15 ) : 윈도우 크기로 로그값의 하위 4비트를 사용한다. zlib이나  gzip 포맷을 자동으로 선택한다. 


    windowBits [참고]




Designed by Tistory.