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

问题描述 投票:0回答:1

我正在尝试使用viivakoodi libary。此处 从一个字符串中生成条形码,我想在内存中读取这些数据,而不是写入文件。我想在内存中读取这些数据,而不是将其写入文件。有什么方法可以做到这一点?

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

当我在python中运行这个程序后,我在打印后的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}

我不知道如何在一个变量中读取将写入文件的字节!

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

ean.save('ean13_barcode')

python file-io barcode in-memory
1个回答
0
投票

库的例子中提到你可以创建一个(类似于文件但在内存中)。字符串IO 对象,并将 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() 来访问对象的值。

© www.soinside.com 2019 - 2024. All rights reserved.