0

シェルで実行されたジョブコマンドの出力を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 に答える