[PIPython] Modificare alcuni caratteri da file di testo

Alessandro Barchi linuxlist
Ven 19 Nov 2004 15:16:46 CET


> > Qual'è il modo migliore (per migliore intendo performante)
> > per leggere - modificare i caratteri - scrivere il nuovo file?
>
> Usa string.maketrans (sez. 4.1 della doc) per definire una tabella di
> traduzione, e poi lo string method translate (sez. 2.3.6.1 della doc) per
> tradurre i caratteri indesiderati.
>


Grazie per la risposta!!

Purtroppo con file molto grandi (nel caso di prova 279 mb)
ho questo tipo di errore:

Traceback (most recent call last):
  File "p:\appl\bin\removenull_dev.py", line 66, in ?
    fo.write(dati2)
IOError: [Errno 22] Invalid argument

Questo perchè viene eseguito in rete  (win2k)
se lo eseguo sulla mia macchina non da errore?!?


Questo è parte del codice:
*********************************************

 	  filei = sys.argv[1]

        fi = open(filei,'rb',10000)
        fo = open('OUT_test'+filei, 'wb',10000)
        dati = fi.read()
        fi.close()

        dati2 = string.translate(dati,table)
        fo.write(dati2)
	  fo.close()
**********************************************

 comunque IMHO non mi sembra che questo sistema sia
 ottimale... da quel che ho capito fi.read() si legge
 tutto il file in memoria, string.translate() effettua
 una nuova copia etc.... infatti la memoria schizza da
 215 mb  a 488 mb   poi a 759  mb per poi ritornare a 215.
 se avessi file da 2 gb che succede??








More information about the Python mailing list