从Python运行文本并将其管道化到.exe文件

2024-10-08 18:25:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从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为什么不能正常运行,我将不胜感激


Tags: 文件字符串test命令bash解决方案exedat
1条回答
网友
1楼 · 发布于 2024-10-08 18:25:28

直接的问题可能是您没有用换行符终止输入。但是你真的不想自己做Popen管道

from subprocess import run
run(['./ascxyz.exe'], text=True,
  input="test.dat\nMoreInput\nMoreInput\n")

还要注意我们如何将列表作为第一个参数传递,以避免complications of ^{}.

相关问题 更多 >

    热门问题