我一直在网上搜索,但我无法找到如何使用python来压缩日志文件并保留日志文件的时间戳。我查看了python提供的gzip函数,但因为它读取数据然后输出它,它会覆盖文件的时间戳。我需要它的行为就像我对文件运行linux gzip命令一样。有没有办法做到这一点?
try:
f_in=open(file,'rb')
f_out=gzip.open(file + '.gz','wb')
f_out.writelines(f_in)
f_out.close()
f_in.close()
# delete copy that gzip creates during gzip process
os.unlink(file)
except IOError, e:
print "Cant Gzip %s: File not found " % file

答案 0 :(得分:2)
mtime 参数是压缩时要写入流的可选数字时间戳。所有 gzip 压缩流都需要包含时间戳。如果省略或
None
,则使用当前时间。该模块在解压缩时忽略时间戳;但是,某些程序,如 gunzip ,会使用它。时间戳的格式与time.time()
的返回值以及st_mtime
返回的对象的os.stat()
属性的格式相同。
答案 1 :(得分:0)
如果使用Python 2.6,则zlib模块无法调整写入gz文件的mtime。你只剩下两种方式: