WSL环境下如何在Jupyter Notebook保存MPB代码输出为.out文件
在WSL的Jupyter Notebook中保存MPB运行结果到.out文件的方法
当然可以实现,但直接在Notebook代码单元格里敲带unix%的原命令不行,得用以下几种方式:
方式一:用Jupyter的shell命令前缀执行外部脚本
去掉命令里的unix%提示符,在Notebook的代码单元格里输入:!python mpb_tri_rods.py >& tri-rods.out解释:
!是Jupyter中执行shell命令的专用前缀,>&是bash的语法(WSL默认用bash),能把程序的标准输出和错误信息都重定向到tri-rods.out文件里。方式二:直接在Notebook代码中重定向输出
如果你的MPB代码是直接写在Notebook单元格里,没单独存成mpb_tri_rods.py,可以用Python的sys模块手动重定向输出流:import sys import mpb # 先保存原本的输出和错误流,避免后续Notebook输出异常 original_out = sys.stdout original_err = sys.stderr # 打开目标文件,把输出和错误都写入 with open('tri-rods.out', 'w') as output_file: sys.stdout = output_file sys.stderr = output_file # 这里写你的MPB求解代码示例 sim = mpb.MPB() # ... 配置仿真参数 ... sim.run() # 恢复原本的输出流 sys.stdout = original_out sys.stderr = original_err验证文件生成
执行!ls命令就能在Notebook里查看当前目录是否生成了tri-rods.out,也可以直接在WSL的文件管理器里找到对应文件。
内容的提问来源于stack exchange,提问作者dabadee
相关产品推荐
相关产品推荐

