【发布时间】:2020-12-30 12:51:56
【问题描述】:
我有 tar.gz 文件,例如:
tmp/
tmp/picture/
tmp/picture/1.jpg
我想用 python 文件添加到这个 tar.gz 文件到 tmp/logger.sh 用 chmod +x
我该怎么做?
import tarfile
with tarfile.open('test.tar.gz','w') as f:
f.add('logger.sh' , arcname='/tmp/logger.sh')
这给了我 tar 文件 /tmp/logger.sh 文件,但删除了 tar 文件中的其余文件 + 我无法将 chmod +x 设置为此文件
【问题讨论】:
-
'w'标志到open肯定会覆盖;你想要'a'。您可以使用filter覆盖TarInfo.mode,但更简单和明显的解决方法是在将文件添加到存档之前将其chmod。 -
@tripleee 想这样做吗? ,我无法为 tarfile.open 设置
a -
为什么不呢?这就是文档清楚地表明的内容。如果该文件不存在,那么您当然不能附加到它,但这不符合您的问题描述。