import random,zipfile filesize=4097 testsize=4096 junk = (("%%0%dX" % (filesize * 2)) % random.getrandbits(filesize * 8)).decode("hex") with zipfile.ZipFile('test.zip','w',zipfile.ZIP_DEFLATED) as f: f.writestr('foo',junk) fp=f.open('foo','r') buf=fp.read(testsize) assert len(buf)<=testsize,'Read returned %d bytes (%d requested)'%(len(buf),testsize)