提取word文档中的字符

最近需要处理各种格式的文档提取字符,有关于word提取字符串记录一下遇到的问题,这里需要用到两个库:

  1. docx , 在终端按照下面的命令装就行了
!pip install python-docx
  1. win32com, 在终端按照下面的命令装就行了
!pip install win32com

docx可以直接处理docx文件,但是对于doc格式的文件需要转换一下,转换代码如下,其中fn是文件绝对路径,一定要绝对路径要不然word软件是没法存的 , 其次需要注意的是由于我电脑只装了wps,所以在下面的clinet.启动的是kwps.Application 如果你装了word 就启动word。

import docx
from win32com import client

def doc2docx(fn):
    word = client.DispatchEx('kwps.Application')  # 打开word应用程序
    doc = word.Documents.Open(fn)  # 打开word文件

    a = os.path.split(fn)  # 分离路径和文件
    b = os.path.splitext(a[-1])[0]  # 拿到文件名
    docx_path = "{}\\{}.docx".format(a[0], b)

    doc.SaveAs(docx_path, 12)  # 另存为后缀为".docx"的文件,其中参数12或16指docx文件
    doc.Close()  # 关闭原来word文件
    word.Quit()
    return docx_path

最后就利用docx直接提取里面的文字就行了,但是如果是图片格式的话,需要利用OCR,感兴趣的可以留言,可以后期发

def extract_text_from_docx(docx_path):
    doc = docx.Document(docx_path)
    text = ""
    for paragraph in doc.paragraphs:
        text += paragraph.text + "\n"

    return text , os.path.splitext(os.path.basename(docx_path))[0] #返回所有文字 , 文件名称

猜你喜欢

转载自blog.csdn.net/victor_manches/article/details/132587183