Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    72

    [Python] sostituire stringhe

    Per fare una copia di un file di testo cambiando la parola AAA con BBB, per dire, usavo uno script così:

    fr = open ('prima.txt' , 'r')

    tutto_fr = fr.read()



    #cambiamenti

    tutto_fr = tutto_fr.replace('AAA', 'BBB')



    fw = open ('dopo.txt' , 'w')

    fw.write (tutto_fr)


    Ma se invece volessi cambiare la parola AAA la prima volta con BBB, la seconda volta con CCC, la terza con DDD e così via?

  2. #2
    Invece di
    codice:
     tutto_fr = tutto_fr.replace('AAA', 'BBB')
    inserisci
    codice:
    x= Raw_input("")
    tutto_fr = tutto_fr.replace('AAA', x*3)
    Così puoi sostituire AAA con la stringa scelta da te, ripetuta 3 volte. Nel caso tu voglia evitare errori di battitura, puoi metterci un semplice controllo
    codice:
    if len(x) != 1:
     print "Errore"
    Else: 
     tutto_fr = tutto_fr.replace('AAA', x*3)
    Se invece vuoi proprio farglielo fare progressivamente, indenta tutto in un ciclo for, così:
    codice:
    caps=[ABCDEFGHIJKLMNOPQRSTUVWXYZ]
    for x in caps:
     funzione che vuoi eseguire prima
      tutto_fr = tutto_fr.replace('AAA', x*3)
    Ciao

  3. #3
    Invece di
    codice:
     tutto_fr = tutto_fr.replace('AAA', 'BBB')
    inserisci
    codice:
    x= Raw_input("")
    tutto_fr = tutto_fr.replace('AAA', x*3)
    Così puoi sostituire AAA con la stringa scelta da te, ripetuta 3 volte. Nel caso tu voglia evitare errori di battitura, puoi metterci un semplice controllo
    codice:
    if len(x) != 1:
     print "Errore"
    else: 
     tutto_fr = tutto_fr.replace('AAA', x*3)
    Se invece vuoi proprio farglielo fare progressivamente, indenta tutto in un ciclo for, così:
    codice:
    caps=[ABCDEFGHIJKLMNOPQRSTUVWXYZ]
    for x in caps:
     funzione che vuoi eseguire prima
     tutto_fr = tutto_fr.replace('AAA', x*3)
    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    72
    Mi sa tanto che non mi sono spiegato bene..scusa, colpa mia.. riprovo!

    In un testo la parola X si ripete diverse volte; invece che sostituirla sempre con la stessa parola voglio che la prima volta che si presenta venga sostituita con la parola Y, la seconda volta invece con la parola Z e così via..

    invece con replace la sostituirei sempre con la stessa, ed è questo che voglio evitare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.