Re: Abrir un fichero binario y modificar parte del fichero

Josu Rodriguez <[email protected]>
Newsgroups gmane.comp.python.general.castellano
Message-ID <[email protected]>
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 <[email protected]> escribió:

> creo que mmap es lo que buscas:
>
> http://docs.python.org/library/mmap.html
>
> 2009/7/22 wowberk <[email protected]>:
> > 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.