在写入文件之前将内容保留在内存中

时间:2020-05-01 21:40:50

标签: python file-io barcode in-memory

我正在尝试使用viivakoodi库here从字符串生成条形码。我想在内存中读取此数据,而不是将其写入文件。有办法吗?

n*(n+1)*(2n+1)/6

在python中运行此命令后,打印import barcode EAN = barcode.get_barcode_class('ean13') ean = EAN(u'5901234123457', writer=ImageWriter())

后,我在ean对象中得到关注
ean.writer.__dict__

不知道如何读取变量中要写入文件的字节!

以下将字节写入文件,但我想在内存中读取而不是写入:

{'_callbacks': {'finish': <bound method ImageWriter._finish of <barcode.writer.ImageWriter object at 0x7f0894072d90>>, 'initialize': <bound method ImageWriter._init of <barcode.writer.ImageWriter object at 0x7f0894072d90>>, 'paint_module': <bound method ImageWriter._paint_module of <barcode.writer.ImageWriter object at 0x7f0894072d90>>, 'paint_text': <bound method ImageWriter._paint_text of <barcode.writer.ImageWriter object at 0x7f0894072d90>>}, '_draw': None, '_image': None, 'background': u'white', 'center_text': True, 'dpi': 300, 'font_size': 10, 'foreground': u'black', 'format': u'PNG', 'module_height': 10, 'module_width': 10, 'quiet_zone': 6.5, 'text': u'', 'text_distance': 5}

1 个答案:

答案 0 :(得分:0)

该库的示例提到您可以创建一个(类似文件但在内存中的)StringIO对象,并将ean写入其中。

import barcode
from StringIO import StringIO  # Python 2
from io import StringIO  # Python 3

EAN = barcode.get_barcode_class('ean13')
ean = EAN(u'5901234123457', writer=ImageWriter())

fp = StringIO()
ean.write(fp)

然后,您可以调用ean.getvalue()来访问对象的值。