Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
压缩单个文件时的Python gzip文件夹结构_Python_Gzip_Directory - Fatal编程技术网

压缩单个文件时的Python gzip文件夹结构

压缩单个文件时的Python gzip文件夹结构,python,gzip,directory,Python,Gzip,Directory,我使用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/joe,或者Windows中的C:->

我使用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/joe,或者Windows中的C:->Documents and Settings->etc


我如何才能将正在压缩的一个文件放在gz文件的根目录中?

为什么不在不指定目录层次结构的情况下打开该文件(只需执行gzip.open(“file.txt.gz”)?。在我看来,这很管用。如果需要,您可以随时将文件复制到其他位置。

您必须使用并提供
fileobj
。如果这样做,您可以为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=real_f)
f.write(content)
f.close()
real_f.close()

似乎
open
不允许您将
fileobj
与文件名分开指定。

如果您将当前工作目录设置为输出文件夹,则可以调用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)

知道我为什么会犯这个错误吗?AttributeError:'module'对象没有属性'GZipFile'请改为尝试GZipFile。知道我为什么会出现此错误吗?AttributeError:“module”对象没有属性“GZipFile”@ishaniyanage:Python 2或3?它是Python 2,但是我通过在与Python脚本相同的目录中创建gz文件来解决它,然后将其移动到正确的位置。