0

我希望作业命令的输出在 shell 中作为 python 中的字符串运行。

我有这个代码

import subprocess
p1 = subprocess.Popen(['jobs'], shell=True, stdout=subprocess.PIPE)
print  p1.communicate()

但这似乎不起作用。我得到的输出是 -

('', None)

我该如何解决?

4

1 回答 1

1

您可以使用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]: 
于 2012-09-19T10:00:54.663 回答