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

Chr*_*s R 2 python scripting automation tar

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

基本上,我需要:

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

我会为很多文件重复这个.

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

是否有捷径可寻?

Dav*_*ips 5

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

你想要做的是按文件处理tarball文件,将文件(带有修改)复制到新的tarball中.Python tarfile模块应该可以轻松完成.您应该能够通过将属性从旧的TarInfo对象复制到新的TarInfo对象来保留属性.