如何在Python中使用bzip2压缩文件?(How to compress a file with bzip2 in Python?)
这是我有的:
import bz2 compressionLevel = 9 source_file = '/foo/bar.txt' #this file can be in a different format, like .csv or others... destination_file = '/foo/bar.bz2' tarbz2contents = bz2.compress(source_file, compressionLevel) fh = open(destination_file, "wb") fh.write(tarbz2contents) fh.close()我知道bz2.compress的第一个参数是一个数据,但这是我发现澄清我需要的简单方法。
我知道BZ2File但是,我找不到任何使用BZ2File的好例子。
Here is what I have:
import bz2 compressionLevel = 9 source_file = '/foo/bar.txt' #this file can be in a different format, like .csv or others... destination_file = '/foo/bar.bz2' tarbz2contents = bz2.compress(source_file, compressionLevel) fh = open(destination_file, "wb") fh.write(tarbz2contents) fh.close()I know first param of bz2.compress is a data, but it's the simple way that I found to clarify what I need.
And I know about BZ2File but, I cannot find any good example to use BZ2File.
最满意答案
bz2.compress的文档说它需要数据,而不是文件名。 请尝试替换以下行:
tarbz2contents = bz2.compress(open(source_file, 'rb').read(), compressionLevel)...或者可能 :
with open(source_file, 'rb') as data: tarbz2contents = bz2.compress(data.read(), compressionLevel)The documentation for bz2.compress for says it takes data, not a file name. Try replacing the line below:
tarbz2contents = bz2.compress(open(source_file, 'rb').read(), compressionLevel)...or maybe :
with open(source_file, 'rb') as data: tarbz2contents = bz2.compress(data.read(), compressionLevel)更多推荐
发布评论