On 2014-03-12 15:23, Fabrizio Soppelsa wrote:
Ciao scusate la domanda idiota ma qualcosa non mi torna.
Il mio obiettivo e' eseguire un comando di sistema concatenandolo a una
stringa PASSWORD che in questo caso contiene caratteri strani ma il
comando, che esegue una query MySQL, per qualche motivo si spezza.
Non riesco a trovare un metodo di escape che mi consenta di eseguirlo
senza errori, ho provato anche con la stringa raw.

def statistics():
        # ...
        PASSWORD=r'pass&wo$rd'

        try:
               #...
s = commands.getoutput('mysql ' + DATABASE + ' -uroot -p'
+ PASSWORD + ' -e "'+ QUERY + '"')

Ogni suggerimento ben accetto :)

Usa il modulo subprocess, con shell=false e passando gli argomenti in una lista anziché concatenarli in una stringa.

Come hai fatto tu basta ci sia uno spazio nella password e hai un problema. Se invochi una shell un & metterebbe il processo in background, un # verrebbe preso per commento ecc.


-- Daniele

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

Rispondere a