打开一个.exe并通过Python子进程向其传递命令?

打开一个.exe并通过Python子进程向其传递命令?,python,multithreading,subprocess,Python,Multithreading,Subprocess,因此,我有一个打开的.exe程序,但我想从python脚本向它传递字符串。 我像这样打开exe import subprocess p = subprocess.Popen("E:\Work\my.exe", shell=True) #let user fill in some tables p.communicate("userInfo") 我想向这个程序传递一个字符串,同时让它在后台运行,而不接收任何想法?来自: 您不需要shell=True来运行批处理文件,也不需要运行 基于控制台的可执

因此,我有一个打开的.exe程序,但我想从python脚本向它传递字符串。 我像这样打开exe

import subprocess
p = subprocess.Popen("E:\Work\my.exe", shell=True)
#let user fill in some tables
p.communicate("userInfo")
我想向这个程序传递一个字符串,同时让它在后台运行,而不接收任何想法?

来自:

您不需要shell=True来运行批处理文件,也不需要运行 基于控制台的可执行文件

从:

请注意,如果要将数据发送到进程的stdin,则需要 使用stdin=PIPE创建Popen对象。同样地,为了得到任何东西 除了结果元组中的None之外,还需要指定stdout=PIPE 和/或stderr=管道也

代码示例:

from subprocess import Popen, PIPE

p = Popen(r"E:\Work\my.exe", stdin=PIPE)
p.communicate("userInfo")
Popen(['/bin/sh','-c',args[0],args[1],…])或具有shell=true的类似Popen('E:\Work\my.exe“+param1,shell=true)