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

时间:2014-05-25 22:27:23

标签: 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")

我想将一个字符串传递给这个程序,同时让它在后台运行而不接受任何想法?

1 个答案:

答案 0 :(得分:2)

来自Python documentation for Using the subprocess module

  

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

来自Python documentation for Popen Objects

  

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

代码示例:

from subprocess import Popen, PIPE

p = Popen(r"E:\Work\my.exe", stdin=PIPE)
p.communicate("userInfo")