Python中如何导出docplex的所有求解结果到文件
解决docplex求解结果导出到文件的3种常用方法
方法1:调用print_solution()时直接指定输出流(最推荐)
docplex的print_solution()方法原生支持output参数,直接传入打开的文件对象即可,无需修改系统配置:
# 假设你已经完成模型构建与求解 mdl.solve() # 直接输出到文件 with open("求解结果.txt", "w", encoding="utf-8") as f: mdl.print_solution(output=f)
方法2:临时重定向标准输出(兼容旧版本docplex)
如果使用的旧版本docplex不支持output参数,可以通过临时修改系统标准输出实现导出:
import sys mdl.solve() # 先保存原有标准输出 origin_output = sys.stdout with open("求解结果.txt", "w", encoding="utf-8") as f: sys.stdout = f mdl.print_solution() # 恢复原有标准输出,避免影响后续控制台打印 sys.stdout = origin_output
方法3:先转成字符串再写入文件(适合需要二次处理结果的场景)
如果需要先对求解结果做裁剪、修改等操作,可以先把结果转为字符串再写入文件:
mdl.solve() # 获取字符串格式的求解结果 sol_content = mdl.solution.to_string() # 写入文件 with open("求解结果.txt", "w", encoding="utf-8") as f: f.write(sol_content)
注意事项
- 写文件时指定
encoding="utf-8"可以避免中文变量名、注释出现乱码 - 如果需要结构化导出结果,还可以用
mdl.solution.export_as_json()生成JSON格式内容写入.json文件
内容的提问来源于stack exchange,提问作者FF-the learner
相关产品推荐
相关产品推荐

