Python gzip单个文件时的文件夹结构
我正在使用Python的gzip模块来压缩一个文件,代码和文档里的例子差不多:
import gzip
content = "Lots of content here"
f = gzip.open('/home/joe/file.txt.gz', 'wb')
f.write(content)
f.close()
当我用7-zip打开这个gz文件时,我发现里面有一个文件夹结构,和我写gz文件时的路径一致,内容被嵌套在好几个文件夹里,就像上面例子中的/home/joe,或者在Windows里的C: -> Documents and Settings -> 等等。
我该怎么做才能让我压缩的那个文件直接放在gz文件的根目录下,而不是嵌套在文件夹里呢?
4 个回答
0
为什么不直接打开文件而不指定目录层级呢(比如直接用gzip.open("file.txt.gz"))?我觉得这样也能正常工作。如果需要的话,你可以随时把文件复制到其他地方。
2
你需要使用 gzip.GzipFile
,并提供一个 fileobj
。这样的话,你就可以为 gz 文件的头部指定一个任意的文件名。
10
看起来你需要直接使用 GzipFile
这个东西:
import gzip
content = "Lots of content here"
real_f = open('/home/joe/file.txt.gz', 'wb')
f = gzip.GZipFile('file.txt.gz', fileobj=real_f)
f.write(content)
f.close()
real_f.close()
似乎 open
这个函数不允许你把 fileobj
和文件名分开来指定。