【发布时间】:2021-11-20 22:31:11
【问题描述】:
我正在使用我实验室开发的软件,我们称之为cool_software。当我在终端上输入cool_software 时,基本上我会得到一个新的提示cool_software >,我可以从终端向这个软件输入命令。
现在我想在 Python 中自动执行此操作,但是我不确定如何将 cool_software 命令传递给它。这是我的 MWE:
import os
os.system(`cool_software`)
os.system(`command_for_cool_software`)
上面代码的问题是command_for_cool_software是在普通的unix shell中执行的,不是cool_software执行的。
【问题讨论】:
-
使用
pexpect -
或者使用
subprocess.Popen(),然后将command_for_cool_software写入stdin管道。 -
@Barmar 谢谢!!我对
subprocess解决方案非常感兴趣。它会是什么样子? -
@Barmar 也许是
subprocess.Popen(["cool_software"], stdin="command_for_cool_software") -
如果这是唯一的输入,那就行了。
标签: python linux unix terminal