【发布时间】:2020-07-27 17:30:56
【问题描述】:
我尝试使用下面的代码使用 python 创建给定目录中所有文件的简单 tar 文件。
目录D:/tmp/里面只有一些普通文件,里面没有子目录。
import os
import tarfile
def createTar(path, tar_name):
with tarfile.open(tar_name, "w:gz") as tar_obj:
for root, dirs, files in os.walk(path):
for file in files:
tar_obj.add(os.path.join(root, file))
createTar("D:/tmp/", "D:/sample.tar.gz")
上面的示例代码可以工作,但它会创建嵌套的 tar 文件,如 D:\sample.tar.gz\sample.tar\<all files> 而不是 D:\sample.tar.gz\<all files>,就像在 linux 上使用 tar 命令创建 tar 文件的方式一样。
有人可以解释为什么它会创建两个像一个在另一个里面一样的 tar 文件吗?
【问题讨论】:
标签: python python-3.6 tarfile