io sono un principiante in Python, e ho cercato di chiamare un'applicazione a riga di comando, ma non riesce:Chiamata app dalla subprocess.call con argomenti
>>> import subprocess as s
>>> s.call("gpio -g read 17")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/subprocess.py", line 470, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.6/subprocess.py", line 623, in __init__
errread, errwrite)
File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Ma allora se aggiungo che shell=True
tutto inizia a funzionare. Qualcuno può spiegare perché?
>>> import subprocess as s
>>> s.call("gpio -g read 17", shell=True)
>>> 0
Perché l'aggiunta di "shell = True" lo rende funzionante? –
E con 'shell = True', questo comando viene inviato a una shell, che quindi divide l'argomento splitting. – mgilson
@MarkIngram - apparentemente stavamo commentando allo stesso tempo. – mgilson