23

Pythonスクリプトから実行しようとしている外部実行可能ファイルがあります。CMD実行可能ファイルは実行されますが、出力は生成されません。おそらく、出力を生成する前に終了します。出力が生成されるまで終了を遅らせる方法について何か提案はありますか?

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)
4

4 に答える 4

20

使用subprocess.call、詳細はこちら

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

また

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

お役に立てば幸いです...

于 2012-11-01T12:40:33.557 に答える
13

このos.system方法は減価償却されており、新しいアプリケーションでは使用しないでください。サブプロセスモジュールは、必要なことを実行するためのpythonicな方法です。

これは、数週間前にファイルのロードに使用して作成したコードの例ですsubprocess。データが受信され、起動されたプログラムが完了するまで終了を遅らせるために使用する必要のあるコマンドは次のwait()とおりです。

import subprocess

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

creationflags=0x08000000は、ウィンドウの起動を抑制するオプションのパラメータです。これは、呼び出しているプログラムを直接表示する必要がない場合に役立ちます。

于 2012-11-01T13:47:48.890 に答える