[pyar] Dudas básicas sobre manejo de archivos

Facundo Batista facundobatista en gmail.com
Vie Jul 2 13:44:50 ART 2010


2010/7/2 Andrés Gattinoni <andresgattinoni en gmail.com>:

> Hice esto:
> http://pastebin.com/f9ErZLkK
>
> Es correcto? Hay alguna forma de hacerlo sin tener que abrir dos
> archivos y hacer el move al final?

Sí.

Podés leer todo el archivo en memoria, cambiar la linea, y volver a
escribirlo. Pero esto quizás te ocupe mucha memoria, así que también
podés abrir el archivo, ir a esa posición y modificar la linea.

Eso es trivialmente fácil si la linea vieja y la nueva tienen el mismo
largo. Si la nueva es más larga, vas a tener que ir leyendo los bytes
antes de pisarlos e irlos grabando un poco más adelante. Si la nueva
es más corta, vas a tener que ir trayendo los bytes de adelante para
atrás, y al final truncar el archivo para ajustarle el largo.

Todo esto último tiene el problema de que si lo hacés de a un byte
tarda mucho, si lo hacés con todo el resto del archivo tenés que
considerar cuanta memoria te ocupa.

Slds.

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/



More information about the pyar mailing list