У меня есть файл .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. Я попытался go обойти эту проблему, используя exec(a)
вместо просто a
в определении m.Wind_phi
. Тем не менее, я все еще получаю сообщение об ошибке, на этот раз он говорит:
Объект 'NoneType' не имеет атрибута 'is_relational'
Есть ли способ сделать то, что я хочу, и определить переменную с помощью чтение файла .txt не является обязательным копированием его содержимого вручную?