【发布时间】:2020-09-11 11:46:29
【问题描述】:
我正在创建一个 python 脚本,该脚本使用不同的输入值多次运行 fortran 代码。我尝试使用:os.system('./fortrancode') 运行 fortran 代码。但是,fortran 代码随后会要求新的用户输入。这必须以以下格式在多行(fortran 代码中的多个读取语句)中提供:
[运行fortran代码]
filename_input.txt [按回车键]
filename_output.txt [按回车键]
1 [按回车键]
1 [按回车键]
1 40 [按回车键]
-10 [按回车键]
目前,我无法从我的 python 脚本中为 fortran 代码提供这些输入参数。 (可能是因为 os.system() 正在等待终端输出?)我也尝试过os.system('./fortrancode\nfilename_input.txt\nfilename_output.txt\n1\n1\n1 40\n-180\n'),但这似乎也不起作用。
为fortran代码提供我在python脚本中循环的输入参数的正确方法是什么?
【问题讨论】:
-
您有两个选择,使用 subprocess.Popen 并与管道通信,或者如果事情变得棘手,请使用 pexpect pexpect.readthedocs.io/en/stable 对于您的情况,使用管道的 Popen 就足够了