Как использовать Python для записи в ISO? - PullRequest
1 голос
/ 11 ноября 2019

Если бы я хотел вставить байты, подобные объекту

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. Посмотрите на файлы, отредактируйте некоторые из них, затем получитеизображение, которое я не уничтожил.

Ответы [ 2 ]

3 голосов
/ 11 ноября 2019

Когда я создавал этот вопрос, я нашел ответ. Main Git Эта библиотека Python имеет функцию записи ISO. Что именно то, что я искал. Полный документ и пример

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()
1 голос
/ 11 ноября 2019

Я не нашел решения для непосредственного редактирования файлов ISO. Вы можете извлечь его в '/ tmp', затем поместить файлы редактирования в, затем вы можете создать файл ISO с отредактированными файлами, которые вы только что создали, с помощью команды ниже.

Для make ISO вы можете использовать 'подпроцесс ', такой как "mkisofs"

пример:

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

...