[Python] Trovare un'occorrenza in un file e sostituire un valore

daniele visaggio visaggio.daniele a gmail.com
Lun 25 Gen 2010 15:56:28 CET


Ciao,

per prima cosa opererei riga per riga, quindi:

#####################################################################
file = open(fileName, "r")          #Opens the file in read-mode

    filelist = file.readlines()         #Creates a list called filelist.
This list has two member,
                                             #each of which is an argument
that has to be passed to the gconftool-2 --set command

    file.close()                          #Close the file



    for fileline in filelist:
       *qui le istruzioni per processare le singole righe*
######################################################################

poi per estrarre l'intervallo di caratteri fra ":" e "AB" ti potrebbe
bastare qualcosa come fileline = fileline[8:13]

poi converti fileline da stringa a numero e moltiplichi per 11.

per la sostituzione usa questa funzione:

###########################################################################

def replacemachine(fileName, sourceText, replaceText):

###########################################################################################
    file = open(fileName, "r") #Opens the file in
read-mode                                   #
    text = file.read() #Reads the file and assigns the value to a
variable              #
    file.close() #Closes the file (read session)                          #
    file = open(fileName, "w") #Opens the file again, this time in
write-mode              #
    file.write(text.replace(sourceText, replaceText)) #replaces all
instances of our keyword  #
    # and writes the whole output when done, wiping over the old contents of
the file         #
    file.close() #Closes the file (write session)
#

###########################################################################################

che invochi con:

fileName = "tuofile.txt"
sourceText = "AB"
replaceText = "RB"

replacemachine (fileName, sourceText, replaceText)

Ciao!


Il giorno 25 gennaio 2010 15.20, Lorenzo Macchiavelli <
lmacchiavelli a gmail.com> ha scritto:

> Salve a tutti qualcuno può aiutarmi??
> Dovrei fare un find and replace in py un pò avanzato("" Per ME!!!"")
>
> del tipo: Quando è presente la stringa di tipo "AB" Devo Sostituire i
> valori all'intero tra i " : "  e " AB " moltiplicando per 11
> il valore all'interno e sostituire la stringa "AB" CON "RB".
>
> Il File è formattato in questo modo:
> ...
> RTS_YAS:10293AB
> RTC_YAS:1003AB
> RTS_YAS:010003RB
>  ...
>
> ESEMPIO: " RTS_YAS:10293AB " diventa "RTS_YAS:113223RB"
>
> Qualcuno può spiegarmi come fare??? quale ragionamento fareste per
> risolvere questo tipo di problema??
> So che magari può sembrare banale... ma sto cercando di capire
> quale tipo di approccio userebbe un programmatore esperto!!
>
> Grazie Anticipatamente
>
> Lorenzo Macchiavelli
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20100125/b8f87fa4/attachment.htm 


Maggiori informazioni sulla lista Python