【发布时间】:2018-03-21 13:28:57
【问题描述】:
是否可以使用tarfile 从 TAR 存档中删除某些文件?
例如:
如果x.tar 文件包含文件a.txt、b.txt 和c.txt,是否可以删除a.txt?
换句话说:是否存在任何 python 解决方案来实现这样的目标:
tar -vf x.tar --delete a.txt?
【问题讨论】:
是否可以使用tarfile 从 TAR 存档中删除某些文件?
例如:
如果x.tar 文件包含文件a.txt、b.txt 和c.txt,是否可以删除a.txt?
换句话说:是否存在任何 python 解决方案来实现这样的目标:
tar -vf x.tar --delete a.txt?
【问题讨论】:
不直接使用tarfile,尽管可能还有其他一些库。您可以做的快速破解是提取文件,然后重新创建 tar 减去您要删除的文件。
【讨论】:
os.system('tar -vf x.tar --delete a.txt')
我遇到了类似的问题,最终使用了 7z 命令行 (7za.exe),因为它支持比 Python 的 tarfile 更多的功能,包括从存档中删除文件。
此方案的缺点是您需要在程序中随身携带 7za.exe 文件。
在你的情况下,你可以使用类似的东西
os.system("7za d x.tar a.txt")
但请记住,os.system 已弃用,您应该使用 subprocess。没用过,实在帮不上忙。
【讨论】: