【问题标题】:How to use python to write to an ISO?如何使用 python 写入 ISO?
【发布时间】:2020-03-06 18:53:35
【问题描述】:

如果我想插入像对象这样的字节

bazstr = b'bazzzzzz\n' 

进入 iso 我将如何在 python 中做到这一点?

 f=open("/Users/root/Downloads/archlinux-2019.08.01-x86_64.iso",'w+')
 f.buffer.raw.read()  

这占用了太多内存,几乎导致冻结。

f.buffer.raw.readline('''any number''')
f.buffer.readline('''any number''') 
f.readline('''any number''')   
# All returned no bytes
f.read(#)
f=open("/Users/root/Downloads/archlinux-2019.08.01-x86_64.iso",'rb')
#returns bytes but but doesn't allow searching through the iso in a meaningful way.

我不想只打开字节块我想使用python打开ISO的文件系统查看文件编辑其中一些然后有一个我没有销毁的图像。

【问题讨论】:

标签: python iso disk-partitioning


【解决方案1】:

当我创建这个问题时,我找到了答案。 Main Git 这个 python 库具有 ISO 编写功能。这正是我想要的。 Full Doc Example

try:
    from cStringIO import StringIO as BytesIO
except ImportError:
    from io import BytesIO

import pycdlib

iso = pycdlib.PyCdlib()
iso.new()
foostr = b'foo\n'
iso.add_fp(BytesIO(foostr), len(foostr), '/FOO.;1')
outiso = BytesIO()
iso.write_fp(outiso)
iso.close()

iso.open_fp(outiso)

bazstr = b'bazzzzzz\n'
iso.modify_file_in_place(BytesIO(bazstr), len(bazstr), '/FOO.;1')

modifiediso = BytesIO()
iso.write_fp(modifiediso)
iso.close()

【讨论】:

    【解决方案2】:

    我没有找到任何直接编辑 ISO 文件的解决方案。您可以将其解压到“/tmp”,然后将编辑文件放入其中,然后您可以使用刚刚创建的编辑文件创建 ISO 文件。

    制作 ISO 时,可以使用“mkisofs”等“子进程”

    示例:

    os.system('mkisofs -o edit.iso /tmp ')

    【讨论】:

      猜你喜欢
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 2022-06-20
      • 1970-01-01
      • 2020-06-12
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多