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)
使用する subprocess.call
、詳細情報 ここ :
import subprocess
subprocess.call(["C:\\temp\\calc.exe"])
または
import os
os.system('"C:/Windows/System32/notepad.exe"')
私はそれがあなたを助けることを願っています...
os.system
メソッドは減価償却されているため、新しいアプリケーションでは使用しないでください。サブプロセスモジュールは、必要なことを行うPythonの方法です。
数週間前にsubprocess
を使用してファイルをロードしたコードの例を示します。データが受信され、起動されたプログラムが完了するまで終了を遅らせるために使用する必要があるコマンドはwait()
です。 :
import subprocess
cmd = "c:\\file.exe"
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, creationflags=0x08000000)
process.wait()
creationflags=0x08000000
は、ウィンドウの起動を抑制するオプションのパラメーターです。これは、呼び出しているプログラムを直接見る必要がない場合に役立ちます。
オプション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')
これは、他のすべてを試した後、私にとってはうまくいきました:pythonプログラムの場所を.exeが置かれている場所と同じになるように変更します。
subprocess.call( "calc.exe")は機能します。