Я обычно выполняю файл Фортрана в Linux (вручную) как:
- Подключиться к серверу
- Перейти к определенной папке
ifort xxx.for -o xxx && ./xxx
(где «xxx.for» - мой файл на Fortran, а «xxx» - исполняемый файл на Fortran)
Но мне нужно вызвать мой файл fortran (xxx.for) из python (я новичок), поэтому я использовал subprocess
со следующей командой:
cmd = ["ssh", sshConnect, "cd %s;"%(workDir), Fortrancmd %s jobname "%s -o %s" exeFilename "%s && %s ./ %s%s"%(exeFilename)]
Но я получаю ошибку, и я не уверен, что не так. Вот полный код:
import string
import subprocess as subProc
from subprocess import Popen as ProcOpen
from subprocess import PIPE
import numpy
import subprocess
userID = "pear"
serverName = "say4"
workDir = "/home/pear/2/W/fortran/"
Fortrancmd = "ifort"
jobname = "rad.for"
exeFilename = "rad"
sshConnect=userID+"@"+servername
cmd=["ssh", sshConnect, "cd %s;"%(workDir), Fortrancmd %s jobname "%s -o %s" exeFilename "%s && %s ./ %s%s"%(exeFilename)]
**#command to execute fortran files in Linux
**#ifort <filename>.for -o <filename> && ./<filename> (press enter)
**#example:ifort xxx.for -o xxx && ./xxx (press enter)
print cmd
Как мне написать программу на python, которая выполняет все 3 шага, описанных выше, и избегает ошибки, которую я получаю?