我正在尝试在解决优化之后输出模型变量。但是我只希望变量值进入输出文件,而不是整个模型。 (这是一个非常大的模型,有很多较大的约束,因此我最好将其缩减为我所需要的)
我尝试过:
(1)一击打印呼叫:
model.component_objects(Var, descend_into=True).pprint(filename='fin_soln.txt')
(2)迭代打印(下一步是添加.txt文件)
f = open("fin_soln_2.txt","a+")
for v in model.component_objects(Var, descend_into=True):
print("FOUND VAR:" + v.name)
f.write("FOUND VAR:" + v.name + "\n")
v.pprint(filename=(v.name +'.txt'))
f.close()
由于存在数十个变量,并且模型仍在开发中,所以我希望它具有灵活性,并且在我从模型中添加/删除变量时,我不必不断更新。
谢谢您的帮助。
答案 0 :(得分:0)
也许这样可以工作:
textbuffer = StringIO()
for v in model.component_objects(Var, descend_into=True):
v.pprint(textbuffer)
textbuffer.write('\n')
with open('filename.txt', 'w') as outputfile:
outputfile.write(textbuffer.getvalue())