[Python] trova e sostituisci
Ciao a tutti, vi posso dire con piacere che la mia piccola applicazione web sta cominciando a prendere vita. Ora apro una nuova discussione specifica per i file. Sto leggendo la documentazione: http://docs.python.org/library/stdtypes.html#bltin-file-objects http://diveintopython.org/file_handling/file_objects.html ma faccio fatica a trovare un modo semplice per fare quello che mi serve. Mi spiego: ho un file di configurazione che devo leggere, trovare una specifica riga, verificare se su questa riga è presente un valore. Se non c'è, lo devo appendere alla riga. Partiamo da un esempio: gruppo disney ... ... membri pippo,pluto ... ... --- Andiamo per step: 1) cerchiamo _solo_ la parola chiave 'membri' f = open(file.txt,r) for line in f.readlines() if 'membri' in line: print line f.close questo funziona 2) Una volta individuata la riga vorrei rimuoverla e sostituirla con quella elaborata f = open(file.txt,w) for line in f.readlines() if 'membri' in line: nuova = line + 'hello world' #rimuovi line f.writeline(nuova) f.close E' possibile fare qualcosa del genere mentre si scorre il file? Come consigliare altrimenti di fare? Successivamente dovrò inoltre poter rimuovere nomi dalla riga 'membri'. Grazie ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
Ciao, ti chiedo scusa se ti dico una cosa banale ma sono nuovo di python. Di recente ho avuto anche io una esigenza simile in un file di configurazione. Ti consiglio il modulo ConfigParser che fa proprio quello che chiedi a patto che il file abbia una determinata struttura. Spero di averti aiutato. Il giorno 15 aprile 2010 12.32, Valerio Pachera siri...@gmail.com ha scritto: Ciao a tutti, vi posso dire con piacere che la mia piccola applicazione web sta cominciando a prendere vita. Ora apro una nuova discussione specifica per i file. Sto leggendo la documentazione: http://docs.python.org/library/stdtypes.html#bltin-file-objects http://diveintopython.org/file_handling/file_objects.html ma faccio fatica a trovare un modo semplice per fare quello che mi serve. Mi spiego: ho un file di configurazione che devo leggere, trovare una specifica riga, verificare se su questa riga è presente un valore. Se non c'è, lo devo appendere alla riga. Partiamo da un esempio: gruppo disney ... ... membri pippo,pluto ... ... --- Andiamo per step: 1) cerchiamo _solo_ la parola chiave 'membri' f = open(file.txt,r) for line in f.readlines() if 'membri' in line: print line f.close questo funziona 2) Una volta individuata la riga vorrei rimuoverla e sostituirla con quella elaborata f = open(file.txt,w) for line in f.readlines() if 'membri' in line: nuova = line + 'hello world' #rimuovi line f.writeline(nuova) f.close E' possibile fare qualcosa del genere mentre si scorre il file? Come consigliare altrimenti di fare? Successivamente dovrò inoltre poter rimuovere nomi dalla riga 'membri'. Grazie ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
Il 15 aprile 2010 12.39, Vitto natha...@gmail.com ha scritto: Ti consiglio il modulo ConfigParser che fa proprio quello che chiedi a patto che il file abbia una determinata struttura. Vado subito a vedere! Grazie! PS: Avevo già addocchiato la funzione string.replace(str, old, new[, maxreplace])¶ Return a copy of string str with all occurrences of substring old replaced by new. If the optional argument maxreplace is given, the first maxreplace occurrences are replaced. E anche l'oggetto Template che possono tornare veramente utili. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
Se vuoi guardare ConfigParser ti consiglio questo link. Veloce e semplice: http://www.doughellmann.com/PyMOTW/ConfigParser/ Come ti dicevo richiede una struttura del file particolare per cui se hai dei file di configurazione già in essere che non puoi modificare allora direi che lo string.replace fa al caso tuo. Non aggiungo altro. Son già emozionato per aver mandato la mia prima risposta in lista e non solo domande :-) 2010/4/15 Valerio Pachera siri...@gmail.com Il 15 aprile 2010 12.39, Vitto natha...@gmail.com ha scritto: Ti consiglio il modulo ConfigParser che fa proprio quello che chiedi a patto che il file abbia una determinata struttura. Vado subito a vedere! Grazie! PS: Avevo già addocchiato la funzione string.replace(str, old, new[, maxreplace])¶ Return a copy of string str with all occurrences of substring old replaced by new. If the optional argument maxreplace is given, the first maxreplace occurrences are replaced. E anche l'oggetto Template che possono tornare veramente utili. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
Il 15 aprile 2010 12.51, Vitto natha...@gmail.com ha scritto: Come ti dicevo richiede una struttura del file particolare per cui se hai dei file di configurazione già in essere che non puoi modificare allora direi che lo string.replace fa al caso tuo. Ho trovato anch'io un buon esempio (http://effbot.org/librarybook/configparser.htm) ma, come hai giustamente scritto, il mio file di configurazione ha una sintassi diversa :( Ad ogni modo posso prendere spunto da questo modulo e creare una classe che fa al caso mio (tempo permettendo). Il mio problema al momento consiste nel scrivere linee di testo in un file già esistente. Altrimenti devo caricare l'intero file in una variabile e cercare di cavarmela con replace ma non mi sembra molto adeguato. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
On 04/15/2010 12:39 PM, Vitto wrote: f = open(file.txt,w) for line in f.readlines() if 'membri' in line: nuova = line + 'hello world' #rimuovi line f.writeline(nuova) f.close E' possibile fare qualcosa del genere mentre si scorre il file? No, devi scrivere un file nuovo. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
Valerio Pachera ha scritto: Ciao a tutti, vi posso dire con piacere che la mia piccola applicazione web sta cominciando a prendere vita. Ora apro una nuova discussione specifica per i file. Sto leggendo la documentazione: http://docs.python.org/library/stdtypes.html#bltin-file-objects http://diveintopython.org/file_handling/file_objects.html ma faccio fatica a trovare un modo semplice per fare quello che mi serve. Mi spiego: ho un file di configurazione che devo leggere, trovare una specifica riga, verificare se su questa riga è presente un valore. Se non c'è, lo devo appendere alla riga. Partiamo da un esempio: gruppo disney ... ... membri pippo,pluto ... ... --- Andiamo per step: 1) cerchiamo _solo_ la parola chiave 'membri' f = open(file.txt,r) for line in f.readlines() if 'membri' in line: print line f.close questo funziona 2) Una volta individuata la riga vorrei rimuoverla e sostituirla con quella elaborata f = open(file.txt,w) for line in f.readlines() if 'membri' in line: nuova = line + 'hello world' #rimuovi line f.writeline(nuova) f.close E' possibile fare qualcosa del genere mentre si scorre il file? Come consigliare altrimenti di fare? Devi creare un nuovo file su cui scrivere. Una cosa tipo: out = open(file_out.txt, 'w') for line in open(file.txt): if 'membri' in line: nuovo = line + 'hello world\n' out.write(nuovo) out.write(line) out.close() ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python