[Python] Formattare un file di stringhe in XML

Daniele Varrazzo piro a develer.com
Lun 24 Feb 2014 13:43:16 CET


On 2014-02-24 12:25, Dante Loi wrote:
> Salve devo scrivere un piccolo script che formati, dei file di 
> risorse nel
> formato XML android.
>
> input file:
>
> File = File
> New = Nuovo disegno

[...]

> Il problema e che il valore della stringa, può contenere degli 
> spazzi,
> quindi non posso semplicemente splitarla. Dovrei estrarre tutta la
> sottostringa che segue " = ".
>
> Avete qualche consiglio sulle funzioni che potrei usare???

Per quello che hai chiesto puoi usare split con il secondo parametro, 
che dice quanti split vuoi al massimo. Splittando su "=" ti ritrovi con 
degli spazi prima e dopo i pezzi, che puoi eliminare con strip(). È più 
robusto che splittare sugli spazi bianchi, perché se per sbaglio ne 
metti di consecutivi le cose non ti torneranno.

     In [1]: s = "SaveName = Salva con = nome" # funziona anche se c'è 
un = nel valore

     In [2]: s.split("=", 1)
     Out[2]: ['SaveName ', ' Salva con = nome']

     In [3]: name, value = [ x.strip() for x in s.split("=", 1) ]

     In [4]: name, value
     Out[4]: ('SaveName', 'Salva con = nome')

La cosa brutta è come generi l'xml: se le stringhe contengono " ' < > 
ottieni un file non valido. Dovresti usare qualcosa di più robusto per 
generare xml, come ElementTree 
(http://docs.python.org/2/library/xml.etree.elementtree.html).

-- Daniele



Maggiori informazioni sulla lista Python