Gio MBG Canepa root ha scritto:
http://home.9records.com/wiki/index.php/Template
questo è quello che io chiamo un "beta template"
cioè una pagina wiki che necessita di essere correttamente compilata con delle
sostituzioni che la rendano utile al suo scopo,
I termini da sostituire (sempre per esempio) potrebbero essere:
LA_BEL 9records.com
LA_BE_LNODOT 9records
CATALOGO 9REC001
NUMCATA 001
GRUPPO Pippo
SDATE 01/01/2007
N_ICK Pluto
N_AME Minni
SURNAM_E Minorpio
YEAR 2007
in realtà ci sono circa 50 sostituzioni da effettuare questo è un piccolo
esempio della manovra reale che dovrei effettuare (in un colpo solo) sul mio
file di testo.
Ciao,
il meccanismo principale di sostituzione tra stringhe in Python prevede che i
placehoder nel template siano in formato %(nome)s. Per cui se tu avessi un
template:
# N.B. questo l'ho copiato dal tuo template, ma non è HTML valido!
template = """
<td><b>%(CATALOGO)s</font></b></td>
<td><b>%(GRUPPO)s</font></b></td>
"""
allora potresti tenere le cose da sostituire in un dizionario:
valori = {
'CATALOGO' : 'Juno',
'GRUPPO' : 'Boards of Canada',
}
e usare l'operatore % sulle stringhe
pagina = template % gruppo
----
C'è anche un metodo un po' meno efficiente, ma che ti permetterebbe di
lasciare inalterati i tuoi template (quindi, se sommi il suo tempo col *tuo*
tempo, molto più efficiente!): usare le espressioni regolari. Il metodo sub()
puo' prendere in input un callable che viene chiamato con un oggetto match in
input e che deve restituire la stringa da sostituire:
template = """
<td><b>CATALOGO</font></b></td>
<td><b>GRUPPO</font></b></td>
"""
import re
# Matcha le chiavi del dizionario dei valori
rex = re.compile("|".join(valori))
pagina = rex.sub(lambda m: valori[m.group()], template)
----
Questo serve a creare stringhe da stringhe: da dove ottieni il tuo template?
che te ne fai della pagina di output? Con Python puoi anche automatizzare
l'interazione col web, ad esempio effettuando il post della pagina generata in
una form offerta da wikimedia. Dai un'occhiata ai moduli di sistema "urllib" e
"urllib2".
Ciao!
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python