python 调用exe 读数据_在Python环境中如何调用可执行exe文件

本文介绍了在Python环境下调用exe文件的四种方法,包括os.system()、commands.getstatusoutput()、os.popen()和win32process.CreateProcess()。在实际应用中,作者发现win32process.CreateProcess()方法相比其他三种,更不容易出现卡死问题,因此推荐使用。
摘要由CSDN通过智能技术生成

在我们平常工作中,经常涉及到用代码启动一个可执行文件的情况。那么,在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

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

希望对各位有用。

相关阅读:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值