python格式化输出 xz_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()

我注意到生成的文件中有两个不同的校验和(MD5和SHA256)与我使用普通xz时相比(虽然我可以用任何一种方法解压缩 – 两个文件的解压缩版本的校验和是相同的).这会是个问题吗?

更新:我通过peterjc的Git存储库(link here)安装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 = sha256(); f2sum = sha256()

f1sum.update(f1_xzbuf); f2sum.update(f2_xzbuf)

if f1sum.hexdigest() == f2sum.hexdigest():

print "Checksums OK"

else:

print "Checksum Error"

我也使用常规sha256sum验证它(当我将数据写入文件时).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值