【发布时间】:2013-02-07 06:32:03
【问题描述】:
我知道已经发布了类似的问题,但我见过的方法似乎都不起作用。我想在 mac 上使用 python 子进程启动应用程序 xfoil,并使用脚本发送 xfoil 一堆命令(xfoil 是一个在终端窗口中运行的应用程序,您可以通过文本命令与之交互)。我可以使用脚本启动 xfoil,但我似乎不知道如何向它发送命令。这是我目前正在尝试的代码:
import subprocess as sp
xfoil = sp.Popen(['open', '-a', '/Applications/Xfoil.app/Contents/MacOS/Xfoil'], stdin=sp.PIPE, stdout=sp.PIPE)
stdout_data = xfoil.communicate(input='NACA 0012')
我也试过了
xfoil.stdin.write('NACA 0012\n')
为了向 xfoil 发送命令。
【问题讨论】:
-
你试过
subprocess.call()吗? -
Google 表示
xfoil subprocessusing-xfoil-and-automating-via-python-subprocess-module 的热门歌曲 -
@sotapme:这对 OP 并没有真正的帮助,因为它假设他已经知道如何
Popenxfoil 可执行文件(这样做的示例是针对 Windows),这正是他不知道该怎么做。 -
我明白了 - 存在
/Applications/Xfoil.app/Contents/Resources/xfoil我猜这是潜在的智慧,但我认为 Xfoil 的全部意义在于 gui。发送该输入确实会得到来自xfoil的响应,但与从 cli 驱动它一样多。 -
@sotapme 是的,我已经看到了你所说的链接(我确实先尝试了谷歌:)但我无法让它工作。
标签: python macos subprocess