美文网首页
Python抽取world文档文本内容

Python抽取world文档文本内容

作者: 一笑乘风凉 | 来源:发表于2019-08-15 14:36 被阅读0次

1、基础准备:

 运行环境:win10系统、python3.7
 插件:pywin32

2、world转text算法实现

算法思路:
(1)定义文件路径和转存路径:使用split切分
(2)修改新的文件名
(3)设置完整的保存路径:使用join
(4)启动应用程序进行格式转换
(5)保存文本
image.png

结构如下图所示:首先读取要提取的word文件路径,截取文件路径和文件名称,通过文件名称后缀判断是否是world文件,若是,修改文件名后缀,与前面的文件路径合并形成新的文件保存路径,然后进行文本提取,最后将提取的内容保存到新的路径下并保存。

3、工程目录如下

image.png

4、代码实现

# coding=utf-8
import fnmatch
import os
from win32com import client as wc

'''
功能描述:world文件转存txt
参数描述:1、file_path文件路径;2、save_path:保存路径
'''
class WorldToText(object):

    def world_to_text(self, file_path, save_path=""):

        # 1、切分文件路径为文件目录和文件名
        dirs, file_name = os.path.split(file_path)
        # print(dirs, '\n', file_name)
        # 2、修改切分后的文件后缀
        new_name = ""
        if fnmatch.fnmatch(file_name,"*.doc"):
            new_name = file_name[:-4] + ".txt"
        elif fnmatch.fnmatch(file_name,"*.docx"):
            new_name = file_name[:-5] + ".txt"
        else:
            print("格式不正确,仅支持doc or docx 格式")
            return
        # 3、设置新的文件保存路径
        if save_path == "":
            save_path = dirs
        else:
            save_path = save_path
        world2txtPath = os.path.join(save_path, new_name)
        print(world2txtPath)
        # 4、加载文本提取的处理程序,world---txt
        # pythoncom.CoInitialize()
        world_app = wc.Dispatch("Word.Application")
        mytxt = world_app.Documents.Open(file_path)
        # 5、保存文本信息
        mytxt.SaveAs(world2txtPath, 4)#参数4代表抽取文本

if __name__ == '__main__':
    world_text = WorldToText()
    file_path = os.path.abspath(r'../extractWorld/测试文本.docx')
    world_text.world_to_text(file_path)

成功运行后,工程目录为:


image.png

注:此方法同样适用于提取pdf

5、抽取文本小工具

# coding=utf-8
import fnmatch
import os
from win32com import client as wc
'''
Description:多格式文档文本抽取工具
功能描述:文件转存txt
参数描述:1、file_path文件路径;2、save_path:保存路径
'''

class TextTool(object):
    
    def FileToText(self,file_path, save_path=""):
        # 1、切分文件路径为文件目录和文件名
        dirs, file_name = os.path.split(file_path)
        # print(dirs, '\n', file_name)
        # 2、修改切分后的文件后缀
        type_name = os.path.splitext(file_name)[-1].lower()
        new_name = self.TranType(file_name, type_name)
        # 3、设置新的文件保存路径
        if save_path == "":
            save_path = dirs
        else:
            save_path = save_path
        new2txtPath = os.path.join(save_path, new_name)
        print(new2txtPath)
        # 4、加载文本提取的处理程序,world---txt
        # pythoncom.CoInitialize()
        world_app = wc.Dispatch("Word.Application")
        mytxt = world_app.Documents.Open(file_path)
        # 5、保存文本信息
        mytxt.SaveAs(new2txtPath, 4)  # 参数4代表抽取文本
        mytxt.Close()
        
    def TranType(self,file_name, type_name):
        new_name = ""
        if type_name == ".pdf":
            if fnmatch.fnmatch(file_name, "*.pdf"):
                new_name = file_name[:-4] + ".txt"
            else:
                return
        elif type_name == ".doc" or type_name == '.docx':
            if fnmatch.fnmatch(file_name, "*.doc"):
                new_name = file_name[:-4] + ".txt"
            elif fnmatch.fnmatch(file_name, "*.docx"):
                new_name = file_name[:-5] + ".txt"
            else:
                return
        else:
            print("警告:\n 您输入【',type_name,'】的数据不合法,本抽取工具仅支持doc/docx/pdf格式")
        return new_name

        
if __name__ == '__main__':
    file_path = os.path.abspath(r'../extractWorld/测试文本.docx')
    texttool = TextTool()
    texttool.FileToText(file_path)

相关文章

  • Python抽取world文档文本内容

    1、基础准备: 2、world转text算法实现 结构如下图所示:首先读取要提取的word文件路径,截取文件路径和...

  • Python 抽取PDF、DOCX文档内容

    1. 抽取pdf内容 数据分析常见的需求是抽取pdf内容,很多常用的包pdfminer.six、pdfminer3...

  • 使用pdfminer解析pdf文件

    最近要做个从 pdf 文件中抽取文本内容的工具,大概查了一下 python 里可以使用 pdfminer 来实现。...

  • DatistEQ之抽取文本内容

    V 2022 Q2版 数据处理过程中,时常会遇到从字符串中提取特定内容的场景,如从FTP的连接串中,抽取用户名。 ...

  • 《自己动手写网络爬虫》第二篇笔记

    第二篇:自己动手抽取Web内容 正则表达式 HtmlParser:文本抽取,链接抽取,资源抽取,链接检查,站点检查...

  • Jsoup 学习

    了解Jsoup Jsoup使用一个解析HTML文件的Java包。利用Jsoup,可以实现以下内容的抽取 文本抽取 ...

  • 信息抽取

    什么是信息抽取? 信息抽取是指在预定的表格栏目里填写内容,内容从文本中自动摘录 传统的自然语言理解旨在模拟人的语言...

  • 架构模式:pipeline

    知名的 Pipeline 模式 unix 的 pipeline 读取文本内容,并过滤 “hello world”,...

  • 2.Day1 - Python基础1

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入...

  • Flutter UI组件

    基础组件 文本 最简单的用法就是只提供文本内容就可以了。比如Text("Hello world"); TextSt...

网友评论

      本文标题:Python抽取world文档文本内容

      本文链接:https://www.haomeiwen.com/subject/egvwjctx.html