3

我正在使用 python GEKKO 和/或 APM Matlab 接口解决最优控制问题(它们对于两种语言都是相同的包)。我可以成功解决我的问题,但我不知道如何指定解决方案文件的输出位置。

加载我的文件并使用解决我的问题后

% server
s = 'http://byu.apmonitor.com';
% application name
a = 'test';
% load model and data file
apm_load(s,a,'test.apm')
csv_load(s,a,'test.csv')
output = apm(s,a,'solve');

在我刚刚运行的文件的目录中创建了一个名为“solution_test.csv”的文件。如何更改此输出目录?

4

2 回答 2

2

您可以通过更改来指定运行文件夹m._path。如果将其保留为默认临时目录,则可以使用 . 查看该文件夹print(m._path)或使用m.open_folder(). 下面是一个使用简单应用程序指定运行目录的示例:

from gekko import GEKKO
m = GEKKO()
m._path = r'C:\test'
x = m.Var()
m.Obj(x**2)
m.solve(disp=False)
print(x.value[0])

您需要确保可以写入此文件夹,在本例中为C:\test. 如果该文件夹不存在或您无权写入该文件夹,它将引发错误。此外,如果您使用锁定文件的程序(例如 Microsoft Excel)打开该文件夹中的文件之一,那么当您尝试运行 Python 时,如果该文件已打开并锁定为写入,您将收到错误消息再次编程。

于 2019-07-08T15:42:58.547 回答
1

如果我理解正确,您想将文件从目录移动到新目录。尝试将其合并到您的代码中。

#dirpath = path of current file
#fname = file name

import os
import shutil

dest_dir = 'some new directory path'

shutil.copy(os.path.join(dirpath, fname), dest_dir)
于 2019-07-07T03:37:37.167 回答