如何在python中压缩tar.gz文件时包含目录



以下是我要做的:

import tarfile
path = os.path.join(archive_path,"package.tar.gz")
tar_package = tarfile.open(path, "w:gz")
os.chdir(os.path.join(archive_path, "package"))
for name in os.listdir("."):
tar_package.add(name)
tar_package.close()

这是将文件直接解压缩为其文件内容。像这样:

#untaring tar file
tar -xf package.tar.gz

(直接从包中/在指定位置进行文件归档。(

我想将文件解压缩到其目录名,其中包含文件内容

#untaring tar file
tar -xf package.tar.gz

package/(此位置的包内文件(

这是我第一次在python中使用tarfile。如果有帮助的话,我会使用python 3.6。感谢您的帮助。

tarfile.add支持目录,因此您可以直接添加"package",而不是在其内容中循环,您将得到您想要的结果:

import tarfile
import os
path = os.path.join(archive_path,"package.tar.gz")
tar_package = tarfile.open(path, "w:gz")
os.chdir(archive_path)
tar_package.add("package")
tar_package.close()

您可以指定不同的目录名作为add:的第二个参数

tar_package.add("package", "custom dir name")

您还可以为单个文件指定子目录:

for name in os.listdir("."):
tar_package.add(name, os.path.join("custom subdir", name))

最新更新