如何为以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调用