Abrir un fichero binario y modificar parte del fichero
Josu Rodriguez
jrvilda en gmail.com
Mie Jul 22 19:29:18 CEST 2009
ok, muchas gracias.
Al final el resultado es el siguiente:
import mmap
import os
def mapfile(filename):
file = open(filename, "r+")
size = os.path.getsize(filename)
return mmap.mmap(file.fileno(), size)
data = mapfile("c:\Dbgview.exe")
# search
index = data.find("!This program cannot be run in ")
print index, repr(data[index:index+35])
data.seek(index)
data.write('!Este programa no puede ejecutarse')
data.flush()
data.close()
El 22 de julio de 2009 18:50, Javier Santana <qualopec en gmail.com> escribió:
> creo que mmap es lo que buscas:
>
> http://docs.python.org/library/mmap.html
>
> 2009/7/22 wowberk <wowberk en gmail.com>:
> > Hola amigos,
> >
> > Estoy intentado abrir un fichero binario y modificar parte de este, y
> > volverlo a guardar pero cada vez que lo intento me da errores.
> >
> > Cuando abro el fichero con f.open(path,"w") el fichero queda con tamaño 0
> > kb.
> > Despues si me muevo a la zona que quiero para escribir con f.seek(78) y
> > escribo en el f.write('aaa')
> > lo unico que consigo es un fichero de 82 byte.
> >
> > ¿Alguien sabe por que sucede esto?
> > me imagino que al abrirlo con "w" el fichero es almacenado en memoria ...
> > pero como puede volcarlo de nuevo?
> >
> > Espero haberme explicado correctamente.
> >
> > Un saludo
> > _______________________________________________
> > Lista de correo Python-es
> > http://listas.aditel.org/listinfo/python-es
> > FAQ: http://listas.aditel.org/faqpyes
> >
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es