web-dev-qa-db-ja.com

Pythonを使用して外部実行可能ファイルを実行する方法は?

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)
16
Ibe

使用する subprocess.call、詳細情報 ここ

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

または

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

私はそれがあなたを助けることを願っています...

13
Aragon

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

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

import subprocess

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

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

9
sgrieve

オプション1

import subprocess

subprocess.call('C:\Windows\System32\calc.exe')

オプション2

subprocess.Popen(['C:\Windows\System32\calc.exe'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,Shell=True).communicate()

オプション

import os
os.system('C:\Windows\System32\calc.exe')
2

これは、他のすべてを試した後、私にとってはうまくいきました:pythonプログラムの場所を.exeが置かれている場所と同じになるように変更します。

subprocess.call( "calc.exe")は機能します。

0
DIVYA RATHOD