我正在尝试从python运行一个.exe文件,并将一个字符串导入其中。exe本身打开一个命令框,需要一系列字符串输入,这些输入可以在一系列行上一次性输入(如下所示)
在bash中,解决方案是:
printf "test.dat\nMoreinput\nMoreinput" | ~/Desktop/Median_filt_exes/ascxyz.exe
要在python中重新创建它,我尝试了:
from subprocess import Popen, PIPE
p = Popen(r"./ascxyz.exe", stdin=PIPE,text=True)
p.communicate("test.dat\nMoreinput/nMoreinput")
没有错误,但它似乎不工作(成功运行时.exe应创建一个新文件)。如果能帮助我找出exe为什么不能正常运行,我将不胜感激
直接的问题可能是您没有用换行符终止输入。但是你真的不想自己做
Popen
管道还要注意我们如何将列表作为第一个参数传递,以避免complications of ^{}.
相关问题 更多 >
编程相关推荐