我有一些Python代码,它可以:
- 从数据库中获取一个被压缩的BLOB。
- 调用C中的解压缩例程来解压缩数据。
- 将未压缩的数据写入文件。
create_string_buffer
方法创建的:
c_uncompData_p = create_string_buffer(64000)
因此,解压缩调用如下:
c_uncompSize = mylib.explodeCharBuffer (c_data_p, c_data_len, c_uncompData_p)
返回未压缩数据的大小作为返回值。但是……我不知道如何强制Python仅写入c_uncompSize
字节——如果我这样做:
myfile.write (c_uncompData_p.raw)
它将整个64k缓冲区输出(数据是二进制的,因此没有空终止符)。那么,我的问题是 - 如何使用Python 2.5打印c_uncompSize字节,而不是整个64k?谢谢 Jamie。
itertools.islice()
来避免复制数据。 - martineau