在Python中运行Fortran命令行程序

2024-04-29 10:23:22 发布

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

所以我有点为难。我正在尝试编写一个Fortran77的绘图和拟合扩展(这个程序为什么要用F77重写也是个谜)代码,它需要命令行输入,也就是说,它提示用户输入。目前该程序使用GNUplot来绘制,但是GNUplot拟合例程在我看来并不理想,从Fortran调用GNUplot至少是一件痛苦的事。在

我主要使用Numpy、Scipy和Matplotlib来满足我的拟合和绘图需求。我想知道是否有一种方法可以在Python中调用F77程序,然后让它像其他F77程序一样运行,直到我需要它来适应并显示出一些漂亮的图(不是GNUplot的东西)。在

我知道F2PY,但我听说过很多关于它的事情。我也曾考虑过使用pyexpect和go,但是我对它处理屏幕上预期的提示的方式有不好的经验(或者我只是错误地使用了它)。在

谢谢你的任何信息。在


Tags: 代码命令行用户程序numpy绘图matplotlib绘制
2条回答

听起来你所要做的就是运行F77程序,然后解析输出文件,全部来自python(如果我错了,请纠正我)。假设fortran程序运行到完成,最简单的事情就是设置python以获取用户或配置文件的输入(请参见http://docs.python.org/library/configparser.html),然后将这些输入输入输入python进程模块:

http://docs.python.org/library/subprocess.html

让它运行F77可执行文件,然后收集输出并分析/绘制它们。python脚本所要做的就是准备输入到fortran,然后在指定的地方获取结果。在

subprocess上查看Doug Hellmann的这篇好教程:

http://www.doughellmann.com/PyMOTW/subprocess/

你不能把Fortran程序生成的数据转储到一个文件中,然后从python中读取它吗?在

Numpy可以读取二进制文件并将其视为数组。 从这里到matplotlib应该是一个breeze。在

相关问题 更多 >