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

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

Rispondere a