Por supuesto, como con cualquier archivo.
Se puede hacer con operaciones de abrir / leer / escribir / buscar / decir / cerrar en un archivo. Empaquetar / desempaquetar los datos con struct / ctypes. Requeriría un conocimiento serio de los contenidos de ISO, pero supongo que ya sabe qué hacer. Si tiene suerte, puede intentar usar mmap, la interfaz para archivar contenidos parecidos a cadenas.
¿Has visto Hachoir , una biblioteca de Python para “ver y editar un campo de flujo binario por campo”? No he tenido la necesidad de probarlo yo mismo, pero ISO 9660 aparece como un formato de analizador compatible .
Se puede usar para listar y extraer, probé el primero.
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