Python gzip 忽略原始文件名和时间戳
大家好,
我正在为一个gzip文件生成md5校验和。技术上来说,每次压缩同一个文件时,生成的md5校验和却是不同的。我该如何使用-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
如果你想把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()
5
GzipFile
类让你可以明确地指定文件名和头部的时间戳。
比如:
#!/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 头部,并且修改时间为零,这意味着根据 RFC 1952 标准,这个 gzip 文件没有修改时间。