栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

解决:史上最难python难题,python 与 exe 交互问题造成程序阻塞

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

解决:史上最难python难题,python 与 exe 交互问题造成程序阻塞

今天公司突然给我一个需求:就是打开一个exe程序进行交互,然后在程序里面输入命令,把显示出来的数据打印出来,提取里面的关键信息到excel里面。刚开始在网上找了很多方法,然而没有找到解决办法,都遇到一个问题:进程阻塞。用普通的os.system(),subprocess.Popen()打开exe程序都会发生进程阻塞而无法执行后面的代码,如下图:

后面参考了文章使用python与.exe文件持续交互_springleaf2的专栏-CSDN博客

利用交互功能结束调进程,使程序可以继续往下执行

代码:
p= subprocess.Popen(comd, stdin=subprocess.PIPE,stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, shell=True)
p.stdin.write('exitn')  # 需要加上n
p.stdin.flush()  # write完后,需要flush
while True:
    line = p.stdout.readline()
    if line != "":
        print(line.strip())
    else:
        break

使用代码后成功结束进程,使脚本继续往下执行:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664281.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号