Python スクリプトから多数の学生用 FORTRAN プログラムを実行しようとしています。これらのプログラムは特定の順序で書かれておらず、単純な FORTRANread(*,*)
コマンドに依存していることがよくあります。簡単なプログラムは次のようになります。
program main
implicit none
real :: p,t
write(*,*)'Enter p'
read(*,*)p
write(*,*)'Enter t'
read(*,*)t
write(*,*)p,t
end program main
このコードは一時停止し、ユーザーがプロンプトに基づいて特定の情報を入力できるようにします。サブプロセス Popen コマンドを使用して、同様の機能が欲しいです。スクリプトは、実行前に入力が何であるか、または発生する必要があるかどうかさえ知りません。
現在、必要な入力のないプログラムの場合、次のスクリプトが機能します。
p = sub.Popen('./file',stdout=sub.PIPE,stderr=sub.PIPE,stdin=sub.PIPE,shell=True)
output,error = p.communicate()
プログラムの実行中にスクリプト ランナーがターミナルにデータを入力できるようにする方法はありますか?