Popen和通讯无法在python中运行

时间:2019-07-09 14:50:44

标签: python fortran subprocess pipe popen

我正在使用名为Molly的天体光谱软件。它在终端中用作子过程。我需要在python脚本中的该软件中执行一些命令。因此,我正在使用子流程包。我收到此错误,但我不明白为什么:

在文件src / gethelp.f的第133行(单位= 5,文件='stdin') Fortran运行时错误:文件结尾

我已经尝试过了:

from subprocess import Popen, PIPE,DEVNULL

p = Popen("/home/ayozeah/trm-software/molly/molly", stdin=PIPE,stdout=PIPE,shell=False)
p.communicate('load average_y_template1.mol 1 1000 1')
p.communicate('@macro_molly.txt')

我还尝试了另一种方法(在此网络上找到问题的答案之后):

from subprocess import Popen, PIPE,DEVNULL

with Popen("/home/ayozeah/trm-software/molly/molly", stdin=PIPE, stdout=DEVNULL, bufsize=1,universal_newlines=True) as process:
    print("load average_y_template1.mol 1 1000 1", file=process.stdin)
    print(file=process.stdin)
    print("@macro_molly.txt", file=process.stdin)
    print(file=process.stdin)

两种情况下的错误相同。该命令在没有python的情况下也能很好地工作,因此对于Molly来说不是问题。我什至不知道这个错误是什么意思。有想法吗?

0 个答案:

没有答案