Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/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创建的tar.gz文件包含_&引用;文件夹,如何删除?_Python - Fatal编程技术网

Python创建的tar.gz文件包含_&引用;文件夹,如何删除?

Python创建的tar.gz文件包含_&引用;文件夹,如何删除?,python,Python,我通过Python创建的.tar.gz文件包含一个我需要删除的“wu”根级文件夹 下面是我正在使用的.tar.gz函数: def make_tarfile(output_filename, source_dir): with tarfile.open(output_filename, "w:gz") as tar: tar.add(source_dir, arcname='') 我使用以下内容创建.tar.gz: 生成文件('ARCHIVE.tar.gz','C:\Fo

我通过Python创建的.tar.gz文件包含一个我需要删除的“wu”根级文件夹

下面是我正在使用的.tar.gz函数:

def make_tarfile(output_filename, source_dir):
    with tarfile.open(output_filename, "w:gz") as tar:
        tar.add(source_dir, arcname='')
我使用以下内容创建.tar.gz: 生成文件('ARCHIVE.tar.gz','C:\FolderA')


有趣的是,当我提取.tar.gz时,“\ux”文件夹并没有出现。从这个意义上说,没关系。但这将是一个被许多用户使用的.tar.gz,因此我希望它不包含这样的怪癖。

您在7z界面中看到的是它添加到每个目录中的
条目,您可以通过单击它来导航。它不存在于tar存档中

考虑以下几点:

def make_tarfile(output_filename, source_dir):
    with tarfile.open(output_filename, "w:gz") as tar:
        for name in os.listdir(source_dir):
            tar.add(os.path.join(source_dir, name), arcname=name)
当被称为
make_tarfile('ARCHIVE.tar.gz','FolderA')
时,其中
FolderA
是:

FolderA/
|-- FolderB
|   `-- example
`-- example
结果生成一个包含以下内容的存档:

example
FolderB/
FolderB/example
现在我不喜欢这样,因为我更喜欢将tar文件解压缩到顶级目录中。由于它们是使用
tar-czf ARCHIVE.tar.gz FolderA/
创建的,因此具有以下条目:

FolderA/
FolderA/example
FolderA/FolderB/
FolderA/FolderB/example

您在7z界面中看到的是它添加到每个目录中的
条目,这样您就可以通过单击它向上导航。它不存在于tar存档中

考虑以下几点:

def make_tarfile(output_filename, source_dir):
    with tarfile.open(output_filename, "w:gz") as tar:
        for name in os.listdir(source_dir):
            tar.add(os.path.join(source_dir, name), arcname=name)
当被称为
make_tarfile('ARCHIVE.tar.gz','FolderA')
时,其中
FolderA
是:

FolderA/
|-- FolderB
|   `-- example
`-- example
结果生成一个包含以下内容的存档:

example
FolderB/
FolderB/example
现在我不喜欢这样,因为我更喜欢将tar文件解压缩到顶级目录中。由于它们是使用
tar-czf ARCHIVE.tar.gz FolderA/
创建的,因此具有以下条目:

FolderA/
FolderA/example
FolderA/FolderB/
FolderA/FolderB/example

如果有人遇到这种情况,请使用7Zip CLI并对所需文件夹的所有内容进行通配符复制(将省略父文件夹)。像这样:

subprocess.call(['C:\Program Files\\7-Zip\\7z.exe', 'a', '-ttar', 'C:\ARCHIVE.tar', 'C:\FolderA\*'])
subprocess.call(['C:\Program Files\\7-Zip\\7z.exe', 'a', '-tgzip', 'C:\ARCHIVE.tar.gz', 'C:\ARCHIVE.tar'])

归档文件中也不会有“u”文件夹,这将是一个整洁的文件夹:)

如果有人遇到这种情况,请使用7Zip CLI并对所需文件夹的所有内容进行通配符复制(父文件夹将被省略)。像这样:

subprocess.call(['C:\Program Files\\7-Zip\\7z.exe', 'a', '-ttar', 'C:\ARCHIVE.tar', 'C:\FolderA\*'])
subprocess.call(['C:\Program Files\\7-Zip\\7z.exe', 'a', '-tgzip', 'C:\ARCHIVE.tar.gz', 'C:\ARCHIVE.tar'])
归档文件中也不会有“u”文件夹,它会很好而且干净:)

谢谢回复。“uz”文件夹不是7z接口问题,我也可以使用其他程序看到它。使用7z CLI是我的解决方案。感谢回复。“uz”文件夹不是7z接口问题,我也可以使用其他程序看到它。使用7z CLI是我的解决方案。