首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将从每个图像检索到的OCR文本写入与每个图像对应的单独文本文件

将从每个图像检索到的OCR文本写入与每个图像对应的单独文本文件
EN

Stack Overflow用户
提问于 2019-06-19 02:36:47
回答 1查看 307关注 0票数 0

我正在读取一个pdf文件,并将每个页面转换为图像并保存,接下来我需要在每个图像上运行OCR,并识别每个图像文本并将其写入新的文本文件。

我知道如何从所有图像中获取所有文本,并将其转储到一个文本文件中。

代码语言:javascript
复制
pdf_dir = 'dir path'
os.chdir(pdf_dir)

for pdf_file in os.listdir(pdf_dir):
    if pdf_file.endswith(".pdf"):
        pages = convert_from_path(pdf_file, 300)
        pdf_file = pdf_file[:-4]
        for page in pages:
            page.save("%s-page%d.jpg" % (pdf_file,pages.index(page)), "JPEG") 

img_dir = 'dir path'
os.chdir(img_dir)

docs = []

for img_file in os.listdir(img_dir):
    if img_file.endswith(".jpg"):
        texts = str(((pytesseract.image_to_string(Image.open(img_file)))))
        text = texts.replace('-\n', '')  
        print(texts)
        img_file = img_file[:-4]
        for text in texts:
            file = img_file + ".txt"
#          create the new file with "w+" as open it
            with open(file, "w+") as f:
                for texts in docs:
                # write each element in my_list to file
                    f.write("%s" % str(texts))
                    print(file)   

我需要一个文本文件,以写入对应的每个图像,已识别该图像内的文本。目前正在写入的文件都是空的,我不知道出了什么问题。有人能帮帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-19 05:22:00

这里有很多东西需要解包:

因此,每个文本文件都只是被创建(为空),并且代码永远不会赋值text = texts.replace('-\n', ''),但是您不会对它做任何事情,而是在该循环中迭代for text in texts,因此在该循环中,text不是replace的结果,而是来自iterable

  • texts的一个项目是< docs >d14replace>,每个text in texts都是一个character.

  • You're,然后使用texts (也是先前分配的)作为docs上的迭代器(同样,这是空的)。

2和4不一定有问题,但可能不是好的实践。1似乎是产生空文本文件的罪魁祸首。3似乎也是一个逻辑错误,因为您几乎肯定不想将单个字符写到文件中。

所以我认为这就是你想要的,但它没有经过测试:

代码语言:javascript
复制
for img_file in os.listdir(img_dir):
    if img_file.endswith(".jpg"):
        texts = str(((pytesseract.image_to_string(Image.open(img_file)))))
        print(texts)
        file = img_file[:-4] + ".txt"
        #create the new file with "w+" as open it
        with open(file, "w+") as f:
            f.write(texts)
            print(file) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56655133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档