gpt4 book ai didi

python - 如何修改 gzip 压缩的 tar 文件中的文件?

转载 作者:行者123 更新时间:2023-11-28 21:29:46 25 4
gpt4 key购买 nike

我想编写一个(最好是 python)脚本来修改 gzipped tar 文件中一个文件的内容。该脚本必须在 FreeBSD 6+ 上运行。

基本上,我需要:

  • 打开 tar 文件
  • 如果 tar 文件中有 _MY_FILE_:
    • 如果 _MY_FILE_ 中有匹配/RE/的行:
    • 在匹配行后插入 LINE
  • 将内容重写到 tar 文件中,保留除文件大小之外的所有元数据

我将对很多文件重复此操作。

Python 的 tarfile 模块在压缩 tar 文件时似乎无法打开它们进行读/写访问,这有一定的意义。但是,我也找不到复制经过修改的 tar 文件的方法。

有没有简单的方法可以做到这一点?

最佳答案

不要将 tar 文件视为可以读/写的数据库——事实并非如此。 tar 文件是文件的串联。要修改中间的文件,您需要重写该文件的其余部分。 (对于特定大小的文件,您也许可以利用 block 填充)

您想要做的是逐个处理 tarball 文件,将文件(经过修改)复制到新的 tarball 中。 Python tarfile 模块应该可以轻松做到这一点。您应该能够通过将属性从旧 TarInfo 对象复制到新对象来保留这些属性。

关于python - 如何修改 gzip 压缩的 tar 文件中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4610205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com