在Python环境中如何调用可执行exe文件

十点数据 1年前 ⋅ 4554 阅读

在我们平常工作中,经常涉及到用代码启动一个可执行文件的情况。那么,在Python环境中,启动一个可执行文件的方式有哪些呢?

一:system方式

os.system() 会保存可执行程序中的打印值和主函数的返回值,且会将执行过程中要打印的内容打印出来

import os 
main = "project1.exe"
r_v = os.system(main) 
print (r_v )

二:getstatusoutput方法

commands.getstatusoutput() 会保存可执行程序中的打印值和主函数的返回值,但不会将执行过程中要打印的内容打印出来

import subprocess 
import os 
main = "project1.exe"
if os.path.exists(main): 
  rc,out= subprocess.getstatusoutput(main) 
  print (rc)
  print ('*'*10)
  print (out)

三:popen方式

popen() 会保存可执行程序中的打印值,但不会保存主函数的返回值,也但不会将执行过程中要打印的内容打印出来

import os
main = "project1.exe"
f = os.popen(main)  
data = f.readlines()  
f.close()  
print (data)

四:win32process方式

#启动一个exe;
def openSimulator(self, simulatorPath, minSleep, maxSleep):
    handle = win32process.CreateProcess(None,
           simulatorPath, None, None, 0,
           win32process.CREATE_NO_WINDOW,
            None ,
            None,
            win32process.STARTUPINFO())
    rc = win32event.WaitForSingleObject(handle[0], 15 * 1000)
    return rc

以上四种方式是我们经常用到的。但是在实际使用中发现,前三种方式均有卡死的情况,**第四种**是最好,目前尚未发现卡死情况。

希望对各位有用。

相关阅读:

运维系列之Python项目打包为EXE可运行程序步骤

全部评论: 0

    我有话说: