Python:使用tarfile从TAR存档中删除文件

时间:2018-03-21 13:28:58

标签: python tar tarfile

是否可以使用tarfile从TAR存档中删除某个文件?

例如:

如果x.tar文件包含a.txtb.txtc.txt文件,是否可以删除a.txt

换句话说:是否存在任何python解决方案来实现这样的目标:

tar -vf x.tar --delete a.txt

2 个答案:

答案 0 :(得分:1)

不直接使用tarfile,尽管可能还有其他库。您可以快速破解文件,然后重新创建tar减去要删除的文件。

答案 1 :(得分:0)

我遇到了类似的问题,最终使用7z命令行(7za.exe),因为它比Python的 tarfile 支持更多功能,包括从存档中删除文件。

此解决方案的缺点是您需要随程序一起携带7za.exe文件。

在您的情况下,您可以使用类似的

os.system("7za d x.tar a.txt")

但是请记住,os.system已过时,您应该使用subprocess。从未使用过,所以我真的无能为力。