以下是我要做的:
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))