2016-04-28 1346 views
0

我需要創建一個運行文件gams(myfile.gms)的python腳本。 我的文件位於文件夾F:\Otim\correct,所以我使用了我在此論壇中看到的代碼的一部分。我提出:從python腳本運行file.gms

import subprocess 
    subprocess.check_call(["F:\Otim\correct\myfile.gms"]) 

,我得到一個錯誤:

Runtime error 

Traceback (most recent call last): 
File "<string>", line 80, in <module> 
File "C:\Python27\ArcGIS10.2\Lib\subprocess.py", line 506, in check_call retcode = call(*popenargs, **kwargs) 
File "C:\Python27\ArcGIS10.2\Lib\subprocess.py", line 493, in call return Popen(*popenargs, **kwargs).wait() 
File "C:\Python27\ArcGIS10.2\Lib\subprocess.py", line 679, in __init__errread, errwrite) 
File "C:\Python27\ArcGIS10.2\Lib\subprocess.py", line 896, in _execute_child 
startupinfo) 
WindowsError: [Error 193] %1 is not a valid Win32 application 

有人能幫助我嗎?謝謝

回答

0

我從來沒有使用gams,但在瀏覽www.gams.com後,它聽起來像myfile.gms不是要執行的文件,而是作爲gams可執行文件的參數提供的輸入文件。

所以,你應該嘗試類似:

import subprocess 
subprocess.check_call([r"C:\path\to\programs\GAMS.exe",r"F:\Otim\correct\myfile.gms"]) 

注意:有一個GAMS蟒蛇API,它可以給你一個更輕便的解決方案。

+0

我tryed,但我又得到一個錯誤: WindowsError:[錯誤2]系統找不到指定的文件 –

+0

你替換C:\ GAMS.exe通過的實際位置\路徑\爲\程序您計算機上的GAMS可執行文件? – manu190466

+0

是的,我提出了:subprocess.check_call([「C:\ GAMS \ win64 \ 24.4 \ gams.exe」,「F:\ Otim \ correct \ myfile.gms」]) –