python:直接编辑ISO文件

时间:2011-04-06 19:11:33

标签: python file file-format iso

  1. 是否可以直接获取ISO文件并在其中编辑文件,即不是通过解压缩,更改文件和重新包装?
  2. 可以从Python做到1.我该怎么办?

4 个答案:

答案 0 :(得分:4)

您是否见过Hachoir,这是一个“按字段查看和编辑二进制流字段”的Python库?我自己没有必要尝试,但ISO 9660被列为supported parser format

答案 1 :(得分:2)

你可以使用列表和提取,我测试了第一个。

https://github.com/barneygale/iso9660/blob/master/iso9660.py

import iso9660
cd = iso9660.ISO9660("/Users/murat/Downloads/VisualStudio6Enterprise.ISO")
for path in cd.tree():
    print path

https://github.com/barneygale/isoparser

import isoparser
iso = isoparser.parse("http://www.microsoft.com/linux.iso")

print iso.record("boot", "grub").children
print iso.record("boot", "grub", "grub.cfg").content

答案 2 :(得分:2)

PyCdlib可以读取和编辑ISO-9660文件以及Joliet,Rock Ridge,UDF和El Torito扩展名。它的documentation中有很多详细的示例,其中包括一个演示如何edit a file in-place的示例。在撰写本文时,它无法添加或删除文件或编辑目录。但是,与旧答案中链接的库相比,它仍在积极维护。

答案 3 :(得分:-1)

  1. 当然,与任何文件一样。

  2. 可以对文件进行打开/读/写/查找/告知/关闭操作。使用struct / ctypes打包/解压缩数据。这需要认真了解ISO的内容,但我认为你已经知道该怎么做了。如果你很幸运,你可以尝试使用mmap - 文件内容字符串的接口。