2012-11-01 26 views
9

私はPythonスクリプトから実行しようとしている外部実行可能ファイルを持っています。 CMD実行可能ファイルは実行されますが、出力は生成されません。おそらく出力が生成される前に終了します。アウトプットが生成されるまでどのように出口を延ばすかについての示唆はありますか?Pythonを使用して外部実行ファイルを実行する方法は?

import subprocess, sys 
from subprocess import Popen, PIPE 
exe_str = r"C:/Windows/System32/cmd C:/temp/calc.exe" 

parent = subprocess.Popen(exe_str, stderr=subprocess.PIPE) 
+2

これはおそらくStackoverflowでお尋ねしますか? – Simbamangu

+1

GISに関する質問ですか? – Mapperz

+0

あなたが正しいかもしれません。入力データは標高と流れの方向です。それが私がここに掲載した理由です。 –

答えて

9

使用subprocess.call、詳細hereos.system方法が減価償却されるとすべきではない

+0

実行されますが、出力は生成されません。 cmdを使用して実行可能ファイルをテストしました。出力を生成する前に少なくとも2〜3秒必要です。これは問題です、どのようにpythonを使用して終了する前に3秒間滞在するには? –

+2

'インポート時間 time.sleep(3)' – Aragon

+1

奇妙な。 3秒の条件であっても出力を生成しませんでした。私は時間を増やしたが、役に立たなかった。他に何が問題になるのかはっきりしない。 –

6

import subprocess 
subprocess.call(["C:\\temp\\calc.exe"]) 

または

import os 
os.system('"C:/Windows/System32/notepad.exe"') 

私はそれはあなたを助け願っています...新しいアプリケーションで使用されます。サブプロセスモジュールは、あなたが必要とすることを行うための無礼な方法です。ここで

は、私は、ファイルをロードするためにsubprocessを使用して、数週間前に書いたいくつかのコードの一例である、あなたはデータを受信したと起動されたプログラムが完了するまで終了を延期するために使用する必要があるコマンドがwait()次のとおりです。

import subprocess 

cmd = "c:\\file.exe" 
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, creationflags=0x08000000) 
process.wait() 

creationflags=0x08000000は、呼び出し元のプログラムを直接表示する必要がない場合に便利な、ウィンドウの起動を抑止するオプションのパラメータです。

+0

まだ出力を生成していません。 cmdウィンドウからは完全に実行されますが、示唆したようにpythonicを使用した出力はありません。 –

関連する問題