Ver Mensaje Individual
  #8 (permalink)  
Antiguo 23/02/2014, 20:32
anirvanao
 
Fecha de Ingreso: octubre-2008
Mensajes: 30
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Sustituir strings en un fichero de medio millon de lineas

Código:
myList=[]
conta=0
f = open('refTable', 'w')
for line in open("myInputFile"):
        if (line[2:8] == 'prefixOld'):
                myList.append(line[13:29])
                conta+=1
                f.write(line[13:29]+'\n')
                continue
        else:
             	if line[1:5] == 'finDeTabla':
                        break

f.close

f2 = open("myInputFile",'r')
myText = f2.read()
conta2=0
for i in myList:
        print str(conta2)
        myText = myText.replace(i,"prefixNew"+str(conta2))
        conta2+=1
f2.close()

fixeroOut = open("myOutputFile",'w')
fixeroOut.write(myText)
fixeroOut.close()

Primero repaso el fichero para almacenar los strings que quiero sustituir, los voy colocando en una lista. Son unas 80000 lineas/variables a almacenar. En esta primera lectura solo leo las primeras 80000 lineas del fichero, es como un encabezado donde cada linea es una variable. Cuando se acaba el encabezado, corto.
Despues vuelvo a abrir el fichero y empiezo a sustituir los strings.
Por ultimo guardo en un nuevo fichero.

@Malenko. ¿Te refieres a partir el fichero en varios y ir trabajando por bloques? Lo pensé pero no puede ser porque tengo que ir sustituyendo cada string por una nueva variable consecutiva, tipo var1 var2 var 3 var4, para no perder la referencia y poder volver a los strings originales por si hiciese falta.

Muchas gracias,

Última edición por anirvanao; 23/02/2014 a las 20:37