在写入文件之前将内容保存在内存中
Hold contents in memory before writing to file
我正在尝试使用 viivakoodi 库 here 从字符串生成条形码。我想在内存中读取此数据而不是将其写入文件。有办法吗?
import barcode
EAN = barcode.get_barcode_class('ean13')
ean = EAN(u'5901234123457', writer=ImageWriter())
在我 运行 this in python 之后,我在打印 ean.writer.__dict__
后在 ean 对象中得到关注
{'_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')
库的示例提到您可以创建一个(类似文件但在内存中)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()
来访问对象的值。
我正在尝试使用 viivakoodi 库 here 从字符串生成条形码。我想在内存中读取此数据而不是将其写入文件。有办法吗?
import barcode
EAN = barcode.get_barcode_class('ean13')
ean = EAN(u'5901234123457', writer=ImageWriter())
在我 运行 this in python 之后,我在打印 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')
库的示例提到您可以创建一个(类似文件但在内存中)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()
来访问对象的值。