顺序提取

需求

将docx中的正文、表格和图片按原有的顺序提取出来。
之前就尝试解决过,最终选择通过本文的方法实现。

解决方法

python的库函数不足以直接进行处理;
docx文档也难以进行外部操作。

所以思路是:
1.需要实验报告的图片前加上标识符:

--picture%--

其中%是这个图片的序号,从一开始;
2.分别提取正文和图片,生成txt文件和png文件,此时txt中图片相应位置内容为空;
3.调用外部接口识别图片内容,插入到txt相应标识的后边。
这样就可以满足需求。

code:

# 将图片信息写入txt相应位置
# 对输入文件直接操作,输入输出路径一致
# num:get_pictures返回的图片数量
# 需要先执行for_docx和get_pictures
def write_picture_into_file(txt_path, picture_folder_path, num):

    i=1
    while(i<=num):
        # 读取图片内容
        # 生成都是png,就按png处理
        fname = picture_folder_path + '\\' + pick_method.get_file_name(txt_path) + '_image' + i.__str__() + '.png'
        picture_text = pick_method.get_picture_text(fname)

        # 把图片内容放在指定位置
        fr = open(txt_path, 'r', encoding='utf-8')
        content = fr.read()
        keyword = '--picture' + i.__str__() + '--'
        post = content.find(keyword)
        if post!=-1:
            content = content[:post + len(keyword)] + picture_text + content[post + len(keyword):]
            fw = open(txt_path, 'w', encoding='utf-8')
            fw.write(content)
            fw.close()
        fr.close()
        i = i + 1

缺陷

1.处理速度较慢,不过主要是ocr的问题,无法解决,可以尝试减少读写文件次数;
2.需要手动加入标识符;
3.标识符被跳过:相应图片被忽略;
4.标识符顺序错误:会按照错误的顺序插入。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值