diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 1999-03-23 23:05:34 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 1999-03-23 23:05:34 (GMT) |
commit | c19f9972a19431e91cd816832158c141681686b4 (patch) | |
tree | 200f35e830157806cb5f984f8239d483651e18e1 /Lib/gzip.py | |
parent | 8ad22c81530653631452be02eda7b3bd0e1b3d44 (diff) | |
download | cpython-c19f9972a19431e91cd816832158c141681686b4.zip cpython-c19f9972a19431e91cd816832158c141681686b4.tar.gz cpython-c19f9972a19431e91cd816832158c141681686b4.tar.bz2 |
use struct instead of bit-manipulate in Python
Diffstat (limited to 'Lib/gzip.py')
-rw-r--r-- | Lib/gzip.py | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/Lib/gzip.py b/Lib/gzip.py index e25464c..e0c7c5b 100644 --- a/Lib/gzip.py +++ b/Lib/gzip.py @@ -1,6 +1,7 @@ import time import string import zlib +import struct import __builtin__ # implements a python function that reads and writes a gzipped file @@ -14,29 +15,10 @@ FTEXT, FHCRC, FEXTRA, FNAME, FCOMMENT = 1, 2, 4, 8, 16 READ, WRITE = 1, 2 def write32(output, value): - t = divmod(value, 256) - b1 = chr(t[1]) - - t = divmod(t[0], 256) - b2 = chr(t[1]) - - t = divmod(t[0], 256) - b3 = chr(t[1]) - - t = divmod(t[0], 256) - b4 = chr(t[1]) - - buf = b1 + b2 + b3 + b4 - output.write(buf) - + output.write(struct.pack("<l", value)) def read32(input): - buf = input.read(4) - v = ord(buf[0]) - v = v + (ord(buf[1]) << 8) - v = v + (ord(buf[2]) << 16) - v = v + (ord(buf[3]) << 24) - return v + return struct.unpack("<l", input.read(4))[0] def open(filename, mode="r", compresslevel=9): return GzipFile(filename, mode, compresslevel) |