为了账号安全,请及时绑定邮箱和手机立即绑定

plt.savefig 如何在内部处理文件处理程序问题(文件引用打开/关闭)?

plt.savefig 如何在内部处理文件处理程序问题(文件引用打开/关闭)?

达令说 2021-10-26 16:31:55
In [2]: lst = ['ABC','DEF','GHIJ']In [3]: sum([len(i) for i in lst])/len(lst)Out[3]: 3.3333333333333335
查看完整描述

1 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

这取决于您实际使用哪个后端来绘制图像。从您发布的片段中,matplotlib 会猜测应该使用 PNG 后端。这反过来又创建了一个matplotlib.backends.backend_agg.FigureCanvasAgg.


这个类做这样的实际保存:


def print_raw(self, filename_or_obj, *args, **kwargs):

    FigureCanvasAgg.draw(self)

    renderer = self.get_renderer()

    with cbook._setattr_cm(renderer, dpi=self.figure.dpi), \

            cbook.open_file_cm(filename_or_obj, "wb") as fh:

        fh.write(renderer._renderer.buffer_rgba())

所以没有悬空的打开文件。该文件保证正确关闭。看看源代码。


查看完整回答
反对 回复 2021-10-26
  • 1 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号