summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>1999-03-23 23:05:34 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>1999-03-23 23:05:34 (GMT)
commitc19f9972a19431e91cd816832158c141681686b4 (patch)
tree200f35e830157806cb5f984f8239d483651e18e1 /Lib
parent8ad22c81530653631452be02eda7b3bd0e1b3d44 (diff)
downloadcpython-c19f9972a19431e91cd816832158c141681686b4.zip
cpython-c19f9972a19431e91cd816832158c141681686b4.tar.gz
cpython-c19f9972a19431e91cd816832158c141681686b4.tar.bz2
use struct instead of bit-manipulate in Python
Diffstat (limited to 'Lib')
-rw-r--r--Lib/gzip.py24
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)