Python gzip省略了原始文件名和时间戳

时间:2014-09-08 16:07:29

标签: python gzip md5sum

民间,   我正在生成一个gdip文件的md5sum。从技术上讲,每次压缩相同的文件,但产生的md5sum是不同的。如何告诉它使用-n标志省略原始文件名和时间戳?

f_in = open(tmpFile, 'rb')
f_out = gzip.open(uploadFile, 'wb')
f_out.writelines(f_in)
f_out.close()
f_in.close()

谢谢!

2 个答案:

答案 0 :(得分:4)

GzipFile类允许您显式提供标头的文件名和时间戳。

E.g:

#!/usr/bin/python
import sys
import gzip

f = open('out.gz', 'wb')
gz = gzip.GzipFile('', 'wb', 9, f, 0.)
gz.write(str.encode('this is a test'))
gz.close()
f.close()

这将生成一个没有文件名且修改时间为零的gzip头,这意味着没有针对gzip的RFC 1952标准的修改时间。

答案 1 :(得分:0)

如果您想将utf-8文本写入标题中没有文件名的gz文件,可以使用以下方法:

import gzip, io

ofile = open("./stuff.txt.gz", 'wb')
ogzfile = gzip.GzipFile('', 'w', 9, ofile, 0.)
ogztextfile = io.TextIOWrapper(ogzfile, 'utf-8')

ogztextfile.write("Зарегистрируйтесь сейчас на\nДесятую Международную\nКонференцию")

ogztextfile.close()
ogzfile.close()
ofile.close()