所以我打开了我的.exe程序但我想从我的python脚本中传递字符串。 我打开像这样的exe
import subprocess
p = subprocess.Popen("E:\Work\my.exe", shell=True)
#let user fill in some tables
p.communicate("userInfo")
我想将一个字符串传递给这个程序,同时让它在后台运行而不接受任何想法?
答案 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")