Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/05/2010, 09:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Eliminar una linea de un txt

Hmm no podés borrar la línea mientras tengas el archivo abierto como solo lectura, y si lo abrieras como lectura-escritura deberías tener cuidado ya que deberías jugar con el puntero interno del archivo y lo que se escribe no es líneas sino bytes.

Ideas que me parecen mejores:
1.- usa una transacción, así si la ejecución falla se vuelve al estado anterior (en caso de que el problema sea hacer la misma operación más de una vez sobre la base)
2.- Guardar un indicador de la cantidad de líneas que lees. Esto es algo así:

Código Python:
Ver original
  1. i = 0
  2. for linea in archivo:
  3.    [ejecutar linea]
  4.    i += 1

[guardar i en alguna parte]

Ya en una ejecución siguiente, cargas el último valor de i, y modificas el for:
Código Python:
Ver original
  1. for linea in archivo:
  2.     if i > 0:
  3.         i -= 1
  4.     else:
  5.         [ejecutar linea]
Seguramente haya una forma mejor, pero esta se me ocurre primero. De todas formas me parece mejor evitar errores usando una transacción.

3.- guardar el 'resto' del archivo, con la línea leída, en un archivo nuevo, y usar éste último en la siguiente ejecución. Esto lo podés hacer facilmente, incluso podrías sobreescribir el archivo original.


Saludos.