2009-05-26 19 views
2

可能性の重複:
How to call external command in Python推奨方法

私はWindowsマシン上でPythonスクリプトを書いています。別のアプリケーション "OtherApp.exe"を起動する必要があります。それには最も適した方法は何ですか?

これまで私はos.system()またはos.execl()を見てきましたが、それらはあまり適切ではありません(私は、後者がウィンドウズでまったく機能するかどうかわかりません)。

+0

重複しているhttp://stackoverflow.com/questions/89228/how-to-call-external-command-in-python –

+0

重複して申し訳ありません。私はそれを閉じることができれば願っている。しかし、投票しました。 –

答えて

3

subprocess moduleを使用することをお勧めします。他のすべての方法(os.system()またはexecなど)は脆弱で安全ではなく、微妙な副作用があり、気にする必要はありません。サブプロセスはそれらのすべてを置き換えます。

-1

サブプロセスが提供することの一つは、Windowsマシン上で[popenの]

import os 
os.popen('dir').read() 

を使用して、たとえば、コマンドの出力をキャッチする方法では、ドライブCに

「音量が得られます\ n \ nボリュームシリアル番号は54CD-5392です。\ n \ n C:\ Python25 \ Lib \ site-packages \ pythonwin \ n \ n [..] dde.pyd license.txt \ nPythonwin .exe [pywin] scintilla.dll tmp.txt \ nwin32ui.pyd win32uiole.pyd \ n 7ファイル984,178バイト\ n 3ディレクトリ30,539,644,928バイト無料\ n '

これは、任意の方法で解析または操作できます。

+0

サブプロセスモジュールは、新しいバージョンのPythonではos.popenを置き換えました。それはこれを処理するための推奨された方法です。 http://docs.python.org/library/subprocess.html –