我有一个正在转移到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读取文件和/或在内存中打开输入文件的权限?
答案 0 :(得分:0)
我遇到了类似的问题。
我通过减小输出文件名的大小来解决这个问题。