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()
프로그램이 실행되는대로 스크립트 주자가 터미널에 데이터를 입력 할 수 있도록 어떤 방법이 있나요? 당신이 pexpect
를 사용하려면 같은
출력을 파이썬 프로그램으로 "파이프"할 수 있습니까? 도움이 될 것입니다. –
예,'interact()'또는'logfile' 속성에'output_filter' 콜백 인자를 사용할 수 있습니다. – ecatmur