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

Python gzip省略原始文件名和时间戳,python,gzip,md5sum,Python,Gzip,Md5sum,各位, 我正在生成gzip文件的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() 谢谢 类允许您显式地提供头的文件名和时间戳 例如: 这将生成一个没有文件名且修改时间为零的gzip头,这意味着根据R

各位, 我正在生成gzip文件的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()

谢谢

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

例如:


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

如果您想在头中没有文件名的情况下将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()

如何计算
md5
值?您是通过shell调用
md5
还是
md5sum
?这可能是相关的:我这样计算:
md5hash=hashlib.md5(open(file).read()).hexdigest()
open(file).read()的值肯定只取决于文件的内容而不是名称。您确定要上载内容相同的文件吗?相同的下线字符?另外,尝试打开二进制模式的文件“rb”。。。我不知道如何翻译,如果可以辨别的话;否则,它默认为空字符串,在这种情况下,原始文件名不包含在文档的“头”中。。。如果提供空字符串作为文件名,则标题将根本不包含文件名。而不是在标题中有一个空字符串的文件名。细微的差别。对我来说不起作用-每次跑步gz都会改变。至少,time to be now()再次尝试,并使代码可移植到Python2和Python3。仍然每次写入完全相同的gzip文件,时间戳为零。现在还没有时间戳。从我的答案中准确地复制代码并测试它。
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()