如何为以os.system或其他python函数开头的fortran程序提供输入?

问题描述

我正在创建一个使用不同的输入值多次运行fortran代码的python脚本。我尝试使用os.system('./fortrancode')运行fortran代码。但是,fortran代码随后要求输入新的用户。必须以以下格式在多行(fortran代码中的多个read语句)中提供该文件

[运行fortran代码]

filename_input.txt [按Enter]

filename_output.txt [按Enter]

1 [按Enter]

1 [按Enter]

1 40 [按Enter]

-10 [按Enter]

目前,我无法从python脚本中提供带有这些输入参数的fortran代码。 (可能是因为os.system()正在等待终端执行输出?)我也尝试过执行os.system('./fortrancode\nfilename_input.txt\nfilename_output.txt\n1\n1\n1 40\n-180\n'),但这似乎也不起作用。

为fortran代码提供我在python脚本中循环输入的输入参数的正确方法是什么?

解决方法

解决方案1:

import subprocess 
result = subprocess.Popen(['./fortrancode','filename_input.txt','filename_output.txt','1','40','-180'])

解决方案2:

您可以使用F2PY

从python调用

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...