【发布时间】:2012-04-28 19:12:41
【问题描述】:
有什么方法可以让我将文件视为变量?
例如,当调用 PIL Image 模块中的函数 save 时:Image.save("foo.jpg") 我希望所有数据不保存在硬盘上,而是引入变量a,这样当a.read() 被调用,它应该返回文件的内容。
【问题讨论】:
有什么方法可以让我将文件视为变量?
例如,当调用 PIL Image 模块中的函数 save 时:Image.save("foo.jpg") 我希望所有数据不保存在硬盘上,而是引入变量a,这样当a.read() 被调用,它应该返回文件的内容。
【问题讨论】:
您可以使用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 module page 可能值得一读,它很短,有很多很好的信息,包含 ch3ka 指出的 StringIO。
【讨论】:
当然,看看StringIO 模块。它为字符串提供了类似文件的接口。
http://docs.python.org/library/stringio.html
StringIO - File-like objects that read from or write to a string buffer.
【讨论】: