我认为内存中类似文件的对象应该像文件一样行为。我没能获得Textract“读”一个Textract无法读取JpegImageFile(StringIO对象)
<StringIO.StringIO instance at 0x05039EB8>
虽然程序运行正常,如果我保存JPEG文件保存到磁盘,并在正常过程读取。
jpeg文件正在从pdf中提取,每Ned Batchelder的优秀博客Extracting JPGs from PDFs。相关代码如下:
type(jpg) --> str (on 2.7)
buff = StringIO.StringIO()
buff.write(jpg)
buff.seek(0)
type(buff) --> instance
print buff --><StringIO.StringIO instance at 0x05039EB8>
dt=Image.open(buff)
print dt --><PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=2630x597 at 0x58C2A90>
text=textract.process(dt)`
此行失败。 Textract无法读取JpegImageFile
如果我做
text=textract.process(buff.getvalue())
我得到一个错误:must be encoded string without NULL bytes, not str
我如何Textract从内存中的文件或流读?