【发布时间】:2020-01-29 14:09:53
【问题描述】:
我有一个 .txt 文件,其中包含我的模型的变量。如果我将文件的内容复制并粘贴到我的程序中为
def Wind_phi_definition(model, i):
return m.Wind_phi[i] ==-19.995904426195736*Sinc(0.04188790204786391*(0. + m.lammda[i]*180/np.pi))*Sinc(0.08975979010256552*(-65. + m.phi[i]*180/np.pi))
m.Wind_phi_const = Constraint(m.N, rule = Wind_phi_definition)
代码执行没有问题。我想通过让程序直接从 .txt 文件中读取来加快速度。
我尝试将变量读取为
f = open("savedWindXPython.txt", "r")
a=f.readline()
f.close
def Wind_lammda_definition(model, i):
return m.Wind_phi[i] == a
m.Wind_phi_const = Constraint(m.N, rule = Wind_lammda_definition)
但是,返回错误 AttributeError:“str”对象没有属性“is_relational”
我知道发生这种情况是因为 python 将其作为字符串而不是 pyomo 变量读取。我试图在m.Wind_phi 的定义中使用exec(a) 而不仅仅是a 来解决这个问题。但是,我仍然得到一个错误,这次它说
“NoneType”对象没有“is_relational”属性
有没有办法做我想做的事并通过读取 .txt 文件来定义变量,而不是必须手动复制它的内容?
【问题讨论】:
标签: python variables text readline pyomo