2009-04-14 10 views

答えて

17

Pythonから外部プログラムを呼び出すには、subprocessモジュールを使用します。

サブプロセスモジュールを使用すると、新しいプロセスを作成し、入力/出力/エラーパイプに接続して戻りコードを取得できます。 DOCから

例(outputは、子プロセスからの出力を提供するファイルオブジェクトである。):

output = subprocess.Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0] 

具体例、cmd、2つの引数を持つWindowsコマンドライン・インタプリタを使用して:

私は、コマンドのMODUL(あなたの質問のフレージングに基づいて)あなたはここでのWindowsについて話していることをかなり確信しているが、(マックを含む)は、UNIX/Linuxでの環境
>>> p1 = subprocess.Popen(["cmd", "/C", "date"],stdout=subprocess.PIPE) 
>>> p1.communicate()[0] 
'The current date is: Tue 04/14/2009 \r\nEnter the new date: (mm-dd-yy) ' 
>>> 
+0

os.popen()を使用できますか? – Kim

+0

いいえ、os.popen()は使用しないでください。サブプロセスによって廃止されました。 – unwind

+0

この条件でどのように環境変数を設定できますか?myargはenv varですか? – Kim

6

eはもご覧になれます。

import commands 

(stat, output) = commands.getstatusoutput("somecommand") 

if(stat == 0): 
    print "Command succeeded, here is the output: %s" % output 
else: 
    print "Command failed, here is the output: %s" % output 

コマンドモジュールは、コマンドを実行し、(stdoutとstderrからの読み取り)、ステータス(リターンコード)と出力を得るために、非常にシンプルなインターフェイスを提供します。オプションで、commands.getstatus()またはcommands.getoutput()をそれぞれ呼び出すことによって、ステータスまたは出力だけを取得することができます。

+0

上記の答えはpython2のpython3のgetstatusoutputとgetoutputに適用されます。 – tssch

関連する問題