open() - Fortran运行时错误:文件''使用Python / Bottle运行exe时不存在

时间:2014-08-28 14:50:48

标签: python-2.7 fortran bottle

我有一个正在转移到IaaS的Fortran exe。从控制台(Windows)运行Fortan exe运行正常,但是当我从Bottle RESTserver(本地)调用exe时,文件路径不起作用,我得到以下错误:

At line 79 of file MainCalculator.f90 (unit = 61, file = '└')
Fortran runtime error: File '' does not exist

这是我执行Fortran的Python / Bottle代码:

def model():
    curr_dir = os.path.dirname(os.path.realpath(__file__))
    exe = "Calculator.exe"
    path = os.path.join(curr_dir, 'bin', 'fortan_model', 'Debug', exe)
    a = subprocess.Popen(path, shell=False)
    a.wait()

以下是在Fortran中抛出错误的代码行:

open(UNIT=61, FILE=trim(adjustl(recipePath))//"Scenarios.txt")

其中,recipePath = '..\..\ourRecipes\OUR_recipes_082014\'(在另一个.f90文件中定义)

似乎文件路径被报告为ASCII值(file ='└'),当从命令行运行exe时不会发生这种情况。我认为它可能是相对路径,但它给出了与绝对路径相同的错误,但是file = '≡f*☺└'

它还会创建一个文件名' Scenarios.txt'(前面有空格)。

编辑:Fortran .exe读取输入的txt文件。每行都分配给一个变量。这可以从命令行按预期工作,但从Bottle执行时,它将输入文件解析为空白字符。我是否需要授予Python读取文件和/或在内存中打开输入文件的权限?

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。

我通过减小输出文件名的大小来解决这个问题。