【发布时间】:2017-05-31 15:25:01
【问题描述】:
我正在尝试在AVL (Athena Vortex Lattice) 中编写一系列运行脚本,这是一个用于设计机翼和其他升力表面的涡流晶格代码。
我将二进制文件存储在 ~/bin/.通常,您在终端中运行 AVL,然后输入命令。典型的命令是:
- 加载 ~/path/avlexamplefile.avl
- 操作
- A A 5
- X
- FS
- 返回
- 退出
其中,加载 .avl 输入文件,进入操作菜单,将迎角设置为 5 度,执行计算,将力打印到输出文件,退出操作菜单,然后退出程序。
我正在尝试使用 subprocess 模块从 python 脚本运行 AVL,代码如下:
import subprocess as sp
avl = sp.Popen(['~/bin/avl3.35'],
stdin=sp.PIPE,stdout=None,
stderr=None,
universal_newlines=True)
avl.communicate('LOAD ~/file/avlexamplefile.avl')
这几乎可行。 AVL 加载,第一个命令被执行,但随后我收到以下错误,并且不会再执行任何命令。
AVL c> forrtl: severe (24): end-of-file during read, unit -4, file stdin
Image PC Routine Line Source
avl3.35 000000010A00F43B Unknown Unknown Unknown
avl3.35 000000010A00DBFE Unknown Unknown Unknown
avl3.35 0000000109FD5177 Unknown Unknown Unknown
avl3.35 0000000109F8B426 Unknown Unknown Unknown
avl3.35 0000000109F8AA39 Unknown Unknown Unknown
avl3.35 0000000109FB61F3 Unknown Unknown Unknown
avl3.35 0000000109EEECF3 Unknown Unknown Unknown
avl3.35 0000000109E7130F Unknown Unknown Unknown
avl3.35 0000000109E6FC7C Unknown Unknown Unknown
libdyld.dylib 00007FFF8B1D95AD Unknown Unknown Unknown
谁能指出我做错了什么?最后,我想将上面的内容放在一个 for 循环中,以运行多个变体。
【问题讨论】:
标签: python python-3.x subprocess