python tarfile在创建tarball时忽略目录结构

时间:2013-08-28 11:54:43

标签: python

我的目标是:

D:\testfolder\folder_to_tar:
                |---folder1
                      |--- file1.txt
                |---folder2
                      |--- file2.txt
                |---file3.txt

我想在同一目录级别使用Python创建一个tarball。但是,我观察到tarball python中包含父目录,即我的示例中的testfolder

Expected Output :
D:\testfolder:
        |---folder_to_tar.tar
                |---folder_to_tar
                        |--folder1
                            .....

Actual Output :
D:\testfolder:
        |---folder_to_tar.tar
                |---testfolder
                       |---folder_to_tar
                                |--folder1
                                       .....

代码:

import tarfile

tarname = "D:\\testfolder\\folder_to_tar"
tarfile1 = "D:\\testfolder\\folder_to_tar.tar"

tarout = tarfile.open(tarfile1,mode="w")

try:
    tarout.add(tarname,arcname=tarname)     
finally:
    tarout.close()

有人可以帮助我了解如何实现它。

2 个答案:

答案 0 :(得分:5)

尝试用:

替换tarout.add行
tarout.add(tarname,arcname=os.path.basename(tarname))

注意:您还需要import os

答案 1 :(得分:0)

您是否尝试在\末尾添加tarname