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

Rispondere a