我用BZ2压缩器对象编写了一些代码来bz2压缩文件:
def compressFile(file_name, new_name):
comp = bz2.BZ2Compressor()
comFile = open(new_name, "wb")
oldFile = open(file_name, "rb")
while True:
data = oldFile.read(1024*1024)
if(len(data) == 0):
break
compressed = comp.compress(data)
comFile.write(compressed)
comp.flush()
comFile.close()
我没有收到错误并且文件已创建,但是当我想用存档管理器打开它时,我收到了一个非特定错误。我找不到我的错误,这个模块的记录很少。
答案 0 :(得分:5)
当您使用BZ2Compressor
时,您在拨打compress()
时会以块的形式获取数据,很有可能您只在拨打flush()
时获取数据。
如果你改变你的功能,它应该有效:
def compressFile(file_name, new_name):
comp = bz2.BZ2Compressor()
comFile = open(new_name, "wb")
oldFile = open(file_name, "rb")
while True:
data = oldFile.read(1024*1024)
if(len(data) == 0):
break
comFile.write(comp.compress(data))
comFile.write(comp.flush())
comFile.close()