python – 不能使用matplotlib的savefig()读写文件?

python – 不能使用matplotlib的savefig()读写文件?,第1张

概述我试图将我的数字保存在临时文件中.我想以最Python的方式做到这一点.为此,我尝试使用tempfile,但我遇到了一些问题. savefig函数应该能够将文件名作为字符串或类似文件的对象,在我尝试的前两件事中我完全没有看到它. 这是我最初尝试过的: with tempfile.TemporaryFile(suffix=".png") as tmpfile: fig.savefig(tmp 我试图将我的数字保存在临时文件中.我想以最Python的方式做到这一点.为此,我尝试使用tempfile,但我遇到了一些问题. savefig函数应该能够将文件名作为字符串或类似文件的对象,在我尝试的前两件事中我完全没有看到它.

这是我最初尝试过的:

with tempfile.Temporaryfile(suffix=".png") as tmpfile:    fig.savefig(tmpfile,format="png") #NO ERROR    print b64encode(tmpfile.read()) #nothing IN HERE

然后我尝试了什么:

with open("test.png","rwb") as tmpfile:    fig.savefig(tmpfile,format="png")    #"libpngerror",and a traceback to     # "backends_agg.py": "RuntimeError: Error building image"    print b64encode(tmpfile.read())

然后我尝试了什么:

with open("test.png","wb") as tmpfile:    fig.savefig(tmpfile,format="png")with open("test.png"),"rb") as tmpfile:    print b64encode(tmpfile.read())

这有效.但是现在使用模块tempfile的全部意义已经消失,因为我必须自己处理命名和删除tempfile,因为我必须打开它两次.有什么方法可以使用tempfile(没有奇怪的解决方法/黑客攻击)?

解决方法 该文件具有执行读取,写入的当前位置.最初文件位置在开头(除非您使用append move(a)打开文件或显式移动文件位置).

如果您相应地写/读,文件位置会提前.如果你不倒回文件,如果从那里读取,你将得到空字符串.使用file.seek,您可以移动文件位置.

with tempfile.Temporaryfile(suffix=".png") as tmpfile:    fig.savefig(tmpfile,format="png") # file position is at the end of the file.    tmpfile.seek(0) # Rewind the file. (0: the beginning of the file)    print b64encode(tmpfile.read())
@H_403_46@ 总结

以上是内存溢出为你收集整理的python – 不能使用matplotlib的savefig()读写文件?全部内容,希望文章能够帮你解决python – 不能使用matplotlib的savefig()读写文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192976.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存