1
我試圖從python腳本運行一些學生FORTRAN程序。這些程序不是以任何特定的順序編寫的,而且通常依賴於簡單的FORTRAN read(*,*)
命令。一個簡單的程序可能是:Python子進程允許用戶交互
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()
有沒有什麼辦法讓腳本運行在終端輸入數據的程序正在運行?
可以將「輸出」輸出回到python程序嗎?這將有所幫助。 – 2012-07-24 17:29:36
是的,你可以使用'output_filter'回調參數'interact()'或'logfile'屬性。 – ecatmur 2012-07-25 08:14:04