我使用Python的gzip的模块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 /乔以上,或C: - >文件和设置 - >等在Windows中。
我怎样才能得到一个文件,我要荏苒只是在GZ文件的根?
它看起来像你将不得不使用GzipFile
直接:
import gzip
content = "Lots of content here"
real_f = open('/home/joe/file.txt.gz', 'wb')
f = gzip.GZipFile('file.txt.gz', fileobj = realf)
f.write(content)
f.close()
real_f.close()
它看起来像open
不允许您指定FileObj文件从文件名分开。
您必须使用gzip.GzipFile
和供应fileobj
。 如果你这样做,你可以指定GZ文件标题中的任意文件名。
为什么不直接打开该文件没有指定一个目录层次结构(只是不gzip.open(“file.txt.gz”))? 在我看来,这样的工作。 您可以随时将文件复制到另一个位置,如果你需要。
如果你设置你的当前工作目录到您的输出文件夹,你可以调用gzip.open(“file.txt.gz”)和GZ文件将不层级创建
import os
import gzip
content = "Lots of content here"
outputPath = '/home/joe/file.txt.gz'
origDir = os.getcwd()
os.chdir(os.path.dirname(outputPath))
f = gzip.open(os.path.basename(outputPath), 'wb')
f.write(content)
f.close()
os.chdir(origDir)