Pyomo pprint 仅将模型的变量打印到文件中



我正在尝试在解决优化后输出模型变量。但是,我只想将变量值放入输出文件,而不是整个模型。(这是一个非常大的模型,有许多大的约束,我最好减少到我需要的(

我试过:

(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()

由于有几十个变量并且模型仍在开发中,我想要一些灵活的东西,当我从模型中添加/删除变量时,我不必不断更新。

谢谢你的帮助。

也许这样的事情会起作用:

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())

最新更新