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,