Borrar cadenas en un archivo

Chema Cortés py en ch3m4.org
Lun Jun 28 10:30:24 CEST 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Friday 25 June 2004 19:21, Hernán Martínez Foffani wrote:

> ¡Borrar la linea es el mismo caso!
> *Tienes* que implementarlo de forma similar como lo hiciste para las
> modificaciones.  Si estas procesando archivos comunes en S.O.
> "normales" no tienes alternativa (y repito, no importa el lenguaje
> con el que programes)

Hay que decir que sí que existen soluciones si tienes registros de longitud 
fija. En lenguaje C se puede hacer sin problemas (por extraño que parezca, 
desconozco cómo se haría en python :-P )

De todas formas, para estos problemas, y habiendo cosas como la Berkeley DB, 
yo no andaría usando ficheros de texto plano:

import bsddb

f=bsddb.rnopen("MyFile.db","w")

#Crear los registros
#La numeración empieza por 1
f[1]="1:127.0.01:27960"
f[2]="2:127.0.01:27970"
f[3]="3:127.0.01:27980"
f[4]="4:127.0.01:27990"

#borrar un registro
del f[2]

#renumerar los registros
for i,(n,s) in enumerate(f.iteritems()):
  del f[n]
  f[i+1]="%d:"%(i+1) + s.split(":",1)[1]

f.close()

f=bsddb.rnopen("MyFile.db","r")
for n,s in f.iteritems():
  print n,s
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQFA39ckHLTQrABk8H0RAsmpAJsEzt2XP9+vbrj9yGKIOoGQXaQOgwCcDN34
iAMU1lVq7ywuvZDb721q6CQ=
=Xi1Y
-----END PGP SIGNATURE-----




Más información sobre la lista de distribución Python-es