python调用exe程序 传入参数_如何从python运行可执行文件并传递所需的参数?

本文介绍如何使用Python通过`subprocess`模块执行需要用户交互的可执行文件grid.exe,通过`communicate`方法传递命令并捕获其响应。作者提供了一个示例代码,并提醒可能存在的警告和未测试情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我不知道如何从python运行可执行文件,然后传递它的命令一一问.我在这里找到的所有示例都是通过在调用可执行文件时直接传递参数来实现的.但是我拥有的可执行文件需要“用户输入”.它要求一个一个的值.

例:

subprocess.call(grid.exe)

>What grid you want create?: grid.grd

>Is it nice grid?: yes

>Is it really nice grid?: not really

>Grid created

解决方法:

import subprocess

def create_grid(*commands):

process = subprocess.Popen(

['grid.exe'],

stdout=subprocess.PIPE,

stdin=subprocess.PIPE,

stderr=subprocess.PIPE)

process.communicate('\n'.join(commands) + '\n')

if __name__ == '__main__':

create_grid('grid.grd', 'yes', 'not really')

本质上,“ communicate”方法会传递输入内容,就像您在键入它一样.请确保输入的每一行都以换行符结尾.

如果希望grid.exe的输出显示在控制台上,请修改create_grid使其如下所示:

def create_grid(*commands):

process = subprocess.Popen(

['grid.exe'],

stdin=subprocess.PIPE)

process.communicate('\n'.join(commands) + '\n')

警告:我尚未完全测试我的解决方案,因此无法确认它们在每种情况下均有效.

标签:command,subprocess,python

来源: https://codeday.me/bug/20191122/2057236.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值