On 2013-11-22 17:18, Roberto Preziusi wrote:
Ciao,
avrei bisogno di effettuare il parsing di un file così composto:

...
       address-set ABC_DEF {
                    address ABC_PRO_1;
                    address BCD_PRO_IP2;
                    address AAA_ABC;
                    address FFF_CHCD;
                    ....
       }
...

Sembra abbastanza facile da fare con le espressioni regolari. La soluzione corretta è scrivere un parser con un generatore che parta dalla vostra grammatica (ply, pyparsing).


All'interno dello stesso file ho altri campi "address-set" con altri nomi
diversi da "ABD_DEF"

Vorrei creare una lista con dentro tutti gli address del mio address-set
address-list = ["ABC_PRO_1", "BCD_PRO_IP2", ... ]

Qualcuno sa dirmi se ci sono librerie in python che fanno questo o se c'è
un modo veloce x farlo ?

Altra domanda:


Domanda mia: ve lo siete inventati voi quel formato?

Perchè state reinventando l'acqua calda: non dovreste scrivere un nuovo parser se potete usare un linguaggio diverso. Quale? Ce ne sono a tonnellate pronti per essere usati in Python:

1. python stesso. Se il formato è Python basta importarlo per avere tutti gli oggetti, ed avete anche già pronti modularità (usando import), potete usare espressioni, variabili...

    address_set("ABC_DEF",
        address("ABC_PRO_1"),
        address("BCD_PRO_IP2"),
        ...)

2. un file ini sembra più che sufficiente, non so se si possono fare ripetizioni. Il parser è nella stdlib.

[ABC_DEF]
address: ABC_PRO_1
address: BCD_PRO_IP2

3. YAML è facilissimo da editare a mano

4. JSON pure andrebbe più che bene, meno editabile di YAML ma il parser è nella stdlib.

sarebbe piu' facile effettuare la stessa operazione se avessi la possibiltà
di esportare questa conf in xml ?

5. XML se proprio ti diverti ad overingegnerizzare per nessun risultato apprezzabile.


-- Daniele
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a