小编ki2*_*2ne的帖子

Python 2.7:使用“ lzma”模块以XZ格式压缩数据

我正在使用Python 2.7.6中的lzma模块进行实验,以查看是否可以为将来的项目使用XZ格式创建压缩文件。我在实验期间使用的代码是:

import lzma as xz

in_file = open('/home/ki2ne/Desktop/song.wav', 'rb')
input_data = in_file.read()

compressed_data = xz.compress(input_data)
out_file = open('/home/ki2ne/Desktop/song.wav.xz', 'wb')
in_file.close()
out_file.close()
Run Code Online (Sandbox Code Playgroud)

与使用普通xz时相比,我注意到生成的文件中有两个不同的校验和(MD5和SHA256)(尽管我可以用两种方法解压缩-两个文件的解压缩版本的校验和都相同)。这会是个问题吗?

更新:我找到了一个修复程序,方法是通过peterjc的Git存储库(从此处链接)安装backport(来自Python 3.3 ),现在它显示的校验和相同。不确定是否有帮助,但是我确保未安装存储库中的LZMA Python模块,以避免可能的名称冲突。

这是我的测试代码以确认这一点:

# I have created two identical text files with some random phrases

from subprocess import call
from hashlib import sha256
from backports import lzma as xz

f2 = open("test2.txt" , 'rb')
f2_buf = buffer(f2.read())
call(["xz", "test1.txt"])

f2_xzbuf = buffer(xz.compress(f2_buf))
f1 = open("test1.txt.xz", 'rb')
f1_xzbuf = buffer(f1.read())

f1.close(); f2.close()

f1sum …
Run Code Online (Sandbox Code Playgroud)

python checksum lzma xz

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

checksum ×1

lzma ×1

python ×1

xz ×1