[Python] Escape stringa con char speciali
Daniele Varrazzo
piro a develer.com
Mer 12 Mar 2014 17:49:30 CET
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
Maggiori informazioni sulla lista
Python