我希望作业命令的输出在 shell 中作为 python 中的字符串运行。
我有这个代码
import subprocess
p1 = subprocess.Popen(['jobs'], shell=True, stdout=subprocess.PIPE)
print p1.communicate()
但这似乎不起作用。我得到的输出是 -
('', None)
我该如何解决?
我希望作业命令的输出在 shell 中作为 python 中的字符串运行。
我有这个代码
import subprocess
p1 = subprocess.Popen(['jobs'], shell=True, stdout=subprocess.PIPE)
print p1.communicate()
但这似乎不起作用。我得到的输出是 -
('', None)
我该如何解决?
您可以使用subprocess.check_output
:
In [5]: import subprocess
In [6]: output = subprocess.check_output("ps")
In [7]: print output
PID TTY TIME CMD
2314 pts/2 00:00:06 bash
4084 pts/2 00:00:03 mpdas
7315 pts/2 00:00:02 python
7399 pts/2 00:00:00 ps
In [8]:
你的代码对我来说很好。
In [11]: import subprocess
In [12]: p1 = subprocess.Popen(['ps'], stdout=subprocess.PIPE)
In [13]: print p1.communicate()[0]
PID TTY TIME CMD
2314 pts/2 00:00:06 bash
4084 pts/2 00:00:03 mpdas
7315 pts/2 00:00:02 python
7682 pts/2 00:00:00 ps
In [14]: