2011-07-18 25 views
2

可能性の重複:
Running shell command from python and capturing the outputPythonのコマンド実行出力

私はそう後でその変数を再び使用することができ、変数にコマンドの出力をキャプチャしたいです。私はこのスクリプトを実行したとき、私は「LS」を入力した場合、私はこの出力を得る

#!/usr/bin/python 
import os 
command = raw_input("Enter command: ") 
os.system(command) 

:私はそれがないように、このスクリプトを変更する必要が

Documents Downloads Music Pictures Public Templates Videos 

私はその文字列をキャプチャしたいです( lsコマンドの出力)を変数に書き込んで、後で再度使用することができます。これはどうすればいいですか?

答えて

2

コマンドの出力は、具体的には、subprocessモジュールでcheck_output機能をキャプチャすることができます。..

output = subprocess.check_output("ls") 

check_outputがかかることを引数リストのためのsubprocess.Popenのドキュメントを参照してください。

9
import subprocess 
command = raw_input("Enter command: ") 
p = subprocess.Popen(command, stdout=subprocess.PIPE) 
output, error = p.communicate() 
0

これはこれまでのやり方です。

>>> import popen2 
__main__:1: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module. 
>>> exec_cmd = popen2.popen4("echo shell test") 
>>> output = exec_cmd[0].read() 
>>> output 
'shell test\n' 
+0

すべての古いpopenインターフェイスは、サブプロセスのために廃止予定です。 –

+0

@Chris私は「DeprecationWarning:popen2モジュールは非推奨です。サブプロセスモジュールを使用してください。意味は... – ironchefpython

+0

スカーフ。はい、私はそのようなことを伝えてきました。 –

関連する問題