1

有什么办法可以让我可以将文件视为变量?例如,当调用 PIL Image 模块中的函数 save 时:Image.save("foo.jpg")我希望所有数据不保存在硬盘上,而是引入变量a中,以便在a.read()调用时返回文件内容是。

4

2 回答 2

8

您可以使用BytesIO类将 PIL 图像保存到字节流中。

>>> from PIL import Image
>>> im = Image.open('ball.png')
>>> from io import BytesIO
>>> buffer = BytesIO()
>>> im.save(buffer, format='png')
>>> buffer.getvalue()
'\x89PNG\r\n\x1a\n\x00\ ... 

可能值得阅读整个io 模块页面,它很短,有很多很好的信息,包含 StringIO,正如 ch3ka 指出的那样。

于 2012-04-28T19:18:02.813 回答
7

当然,看看StringIO模块。它为字符串提供了一个类似文件的接口。

http://docs.python.org/library/stringio.html

StringIO - File-like objects that read from or write to a string buffer.
于 2012-04-28T19:17:47.267 回答