我已经阅读了很多关于这个主题的问题,甚至还有2个已经接受了答案的问题,然后在评论中出现了与我正在经历的问题相同的问题.
所以我想要做的是捕获此命令的输出(在命令行中工作)
sudo /usr/bin/atq
Run Code Online (Sandbox Code Playgroud)
在我的Python程序中.
这是我的代码(这是另一个问题中接受的答案)
from subprocess import Popen, PIPE
output = Popen(['sudo /usr/bin/atq', ''], stdout=PIPE)
print output.stdout.read()
Run Code Online (Sandbox Code Playgroud)
这就是结果:
File "try2.py", line 3, in <module>
output = Popen(['sudo /usr/bin/atq', ''], stdout=PIPE)
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)
为什么这就是结果(在Python 2.7中,在debian Raspbarry Wheezy安装上)?
我相信你需要做的就是改变,
output = Popen(['sudo /usr/bin/atq'], stdout=PIPE)
Run Code Online (Sandbox Code Playgroud)
至
output = Popen(['sudo', '/usr/bin/atq'], stdout=PIPE)
Run Code Online (Sandbox Code Playgroud)
当我在args列表中包含多个参数作为单个字符串时,我得到相同的错误.
| 归档时间: |
|
| 查看次数: |
2290 次 |
| 最近记录: |