Re: [Python] trova e sostituisci
Avrei bisogno di una cosa tipo stringa = ' questa stringa ha tabulazionie più spazi nel mezzo e / alla fine print stringa.replace('\t', '').strip() questa concatenazione rimuove tutte le taulazione e tutti gli spazi ad _inizio_ e _fine_ stringa. Vorrei essere sicuro di lasciare un solo spazio fra le parole. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
2010/4/16 Valerio Pachera siri...@gmail.com Avrei bisogno di una cosa tipo stringa = ' questa stringa ha tabulazionie più spazi nel mezzo e / alla fine print stringa.replace('\t', '').strip() re.sub('[ \t]+', ' ', stringa).strip() Ciao. Marco. -- http://thinkcode.tv/gratis - Capire in 15 minuti cosa può fare Python http://stacktrace.it - Aperiodico di resistenza informatica http://python.thinkcode.tv - Videocorso di Python http://beri.it - Blog di una testina di vitello ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
2010/4/16 Marco Beri marcob...@gmail.com 2010/4/16 Valerio Pachera siri...@gmail.com Avrei bisogno di una cosa tipo stringa = ' questa stringa ha tabulazionie più spazi nel mezzo e / alla fine print stringa.replace('\t', '').strip() re.sub('[ \t]+', ' ', stringa).strip() Ovviamente prima: import re Ciao. Marco. -- http://thinkcode.tv/gratis - Capire in 15 minuti cosa può fare Python http://stacktrace.it - Aperiodico di resistenza informatica http://python.thinkcode.tv - Videocorso di Python http://beri.it - Blog di una testina di vitello ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
On Fri, 16 Apr 2010 11:11:03 +0200, Valerio Pachera siri...@gmail.com wrote: Avrei bisogno di una cosa tipo stringa = ' questa stringa ha tabulazionie più spazi nel mezzo e / alla fine print stringa.replace('\t', '').strip() questa concatenazione rimuove tutte le taulazione e tutti gli spazi ad _inizio_ e _fine_ stringa. Vorrei essere sicuro di lasciare un solo spazio fra le parole. In [1]: s = questa stringa ha tabulazioni \t e piu' spazi nel mezzo e alla fine In [2]: .join(s.split()) Out[2]: questa stringa ha tabulazioni e piu' spazi nel mezzo e alla fine -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
2010/4/16 Daniele Varrazzo p...@develer.com On Fri, 16 Apr 2010 11:11:03 +0200, Valerio Pachera siri...@gmail.com wrote: Avrei bisogno di una cosa tipo stringa = ' questa stringa ha tabulazionie più spazi nel mezzo e / alla fine print stringa.replace('\t', '').strip() questa concatenazione rimuove tutte le taulazione e tutti gli spazi ad _inizio_ e _fine_ stringa. Vorrei essere sicuro di lasciare un solo spazio fra le parole. In [1]: s = questa stringa ha tabulazioni \t e piu' spazi nel mezzo e alla fine In [2]: .join(s.split()) Out[2]: questa stringa ha tabulazioni e piu' spazi nel mezzo e alla fine Ma dai? Grandissimo Piro! E molto più pythonico. Non lo sapevo che lo split prendeva di default anche i tab: split(...) S.split([sep [,maxsplit]]) - list of strings Return a list of the words in the string S, using sep as the delimiter string. If maxsplit is given, at most maxsplit splits are done. If sep is not specified or is None, any whitespace string is a separator and empty strings are removed from the result. Ciao. Marco. -- http://thinkcode.tv/gratis - Capire in 15 minuti cosa può fare Python http://stacktrace.it - Aperiodico di resistenza informatica http://python.thinkcode.tv - Videocorso di Python http://beri.it - Blog di una testina di vitello ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
On Fri, 16 Apr 2010 12:02:48 +0200, Marco Beri marcob...@gmail.com wrote: 2010/4/16 Daniele Varrazzo p...@develer.com On Fri, 16 Apr 2010 11:11:03 +0200, Valerio Pachera siri...@gmail.com wrote: Vorrei essere sicuro di lasciare un solo spazio fra le parole. In [2]: .join(s.split()) Non lo sapevo che lo split prendeva di default anche i tab: Non solo: split() senza argomento collassa i whitespace: whitespace consecutivi (tab, spazi, cr, lf...) contano come una sola separazione. Usando una stringa come separatore invece le occorrenze consecutive non vengono collassate, né vengono strippate dagli estremi della stringa. In [1]: '|||x||y|'.split('|') Out[1]: ['', '', '', 'x', '', 'y', ''] -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trova e sostituisci
Il 16 aprile 2010 15.19, Daniele Varrazzo p...@develer.com ha scritto: Non solo: split() senza argomento collassa i whitespace: whitespace consecutivi (tab, spazi, cr, lf...) contano come una sola separazione. Perfetto!! Grazie! ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[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