无法使用普通的归档管理器打开bz2-compressed(with python)文件

Ekn*_*oes 2 python compression bzip2

我用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()
Run Code Online (Sandbox Code Playgroud)

我没有收到错误并且文件已创建,但是当我想用存档管理器打开它时,我得到一个非特定的错误.我找不到我的错误,这个模块记录不完整.

mat*_*ata 5

当您使用a时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()
Run Code Online (Sandbox Code Playgroud)