使用Python轻松批量读取Word文档及各种Word元素的文字内容

2024-05-10 1256阅读

目录

引言

安装Python Word库

使用 Python 批量读取Word文档的文字内容

使用 Python 读取Word文档特定节的文字内容

使用 Python 读取Word文档特定段落的文字内容

使用 Python 读取Word文档特定页面的文字内容

使用 Python 读取Word文档特定行的文字内容

使用 Python 读取Word文档特定表格的文字内容

使用 Python 读取Word文档页眉和页脚的文字内容


引言

在现代办公环境中,Word文档是一种常见的文件格式,广泛用于书写、编辑和共享各种类型的文本内容。有时候,我们需要从Word文档中提取文字内容,以便进行进一步的处理和分析。通过编程的方式实现这一功能可以极大地提高工作效率,尤其是当需要处理大量文档或进行批量操作时。

这篇博客将探讨如何使用Python从整个Word文档及各种Word元素中读取文字内容:

  • 使用 Python 批量读取Word文档的文字内容
  • 使用 Python 读取Word文档特定节的文字内容
  • 使用 Python 读取Word文档特定段落的文字内容
  • 使用 Python 读取Word文档特定页面的文字内容
  • 使用 Python 读取Word文档特定行的文字内容
  • 使用 Python 读取Word文档特定表格的文字内容
  • 使用 Python 读取Word文档页眉和页脚的文字内容

    安装Python Word库

    在Python中,我们可以使用Spire.Doc for Python库来读取Word文档的内容。

    Spire.Doc for Python主要用于在Python应用程序中创建、读取、编辑和转换Word文件。它可以处理各种Word格式,包括Doc、Docx、Docm、Dot、Dotx、Dotm等。此外,还可以将Word文档转换为其他类型的文件格式,如Word转PDF、Word转RTF、Word转HTML、Word转文本、Word转图片、Word转OFD/XPS/PostScript。

    你可以通过在终端运行以下命令来从PyPI安装Spire.Doc for Python:

    pip install Spire.Doc

    使用 Python 批量读取Word文档的文字内容

    从整个Word文档中提取文本很简单,只需使用Document.GetText()方法。具体步骤如下:

    • 创建Document实例并使用Document.LoadFromFile()方法加载Word文档。
    • 使用Document.GetText()方法获取该Word文档的文字内容。
    • 将获取的文字内容写入文本文件。
      from spire.doc import *
      from spire.doc.common import *
      # 创建Document实例
      document = Document()
      # 加载Word文档
      document.LoadFromFile("测试.docx")
      # 获取文档的文本内容
      document_text = document.GetText()
      # 将获取的文本内容保存到文本文件
      with open("文档文字.txt", "w", encoding="utf-8") as file:
          file.write(document_text)
      document.Close()
      

      使用Python轻松批量读取Word文档及各种Word元素的文字内容

      以上代码展示了如何读取一个Word文档的文本内容。如果需要使用Python批量读取一个文件夹下所有Word文档的文字内容,可以使用以下代码,该代码生成的文本文件将以Word文档本身的名称命名:

      from spire.doc import *
      from spire.doc.common import *
      import os
      def extract_text_from_word(filename):
          document = Document()
          document.LoadFromFile(filename)
          document_text = document.GetText()
          document.Close()
          return document_text
      # 输入文件夹路径
      input_folder_path = "你的输入文件夹/"
      # 输出文件夹路径
      output_folder_path = "你的输出文件夹/"
      # 遍历输入文件夹中的所有文件
      for file_name in os.listdir(input_folder_path):
          file_path = os.path.join(input_folder_path, file_name)
          # 判断文件是否是以.docx或.doc结尾的Word文档
          if file_name.endswith((".docx", ".doc")):
              text_content = extract_text_from_word(file_path)
              output_file = os.path.splitext(file_name)[0] + ".txt"
              output_file_path = os.path.join(output_folder_path, output_file)
              with open(output_file_path, "w", encoding="utf-8") as output:
                  output.write(text_content)
              print(f"已提取文档内容并保存到文件: {output_file_path}")
      

      使用 Python 读取Word文档特定节的文字内容

      Word 文档可能包含不同的节,每个节都包含不同的内容。 Spire.Doc for Python 提供了Document.Sections[index] 属性,用于获取Word 文档中的特定节。 获取后,遍历该节中的段落,然后使用 Paragraph.Text 属性获取每个段落的文本。具体步骤如下:

      • 创建Document实例并使用Document.LoadFromFile()方法加载Word文档。
      • 使用Document.Sections[index] 属性获取文档的特定节。
      • 创建一个列表用于存储提取的文本。
      • 遍历该节中的段落。
      • 使用 Paragraph.Text 属性获取每个段落的文本并将它们添加至列表。
      • 将列表的内容写入文本文件。
        from spire.doc import *
        from spire.doc.common import *
        # 创建Document实例
        document = Document()
        # 加载Word文档
        document.LoadFromFile("测试.docx")
        # 获取第一个节
        section = document.Sections[0]
        # 创建一个列表用于存储提取的文本
        section_text = []
        # 遍历第一节中的段落
        for i in range(section.Paragraphs.Count):
            paragraph = section.Paragraphs[i]
            # 获取每个段落的文本并将它们添加至列表
            section_text.append(paragraph.Text)
        # 将列表的内容写入文本文件
        with open("节文字.txt", "w", encoding="utf-8") as file:
            file.write("\n".join(section_text))
        document.Close()
        

        使用 Python 读取Word文档特定段落的文字内容

        要获取特定段落的文字内容,只需使用Section.Paragraphs[index]属性获取该段落,然后使用Paragraph.Text 属性获取它的文本。具体步骤如下:

        • 创建Document实例并使用Document.LoadFromFile()方法加载Word文档。
        • 使用Document.Sections[index] 属性获取文档的特定节。
        • 使用Section.Paragraphs[index]属性获取该节中特定的段落。
        • 使用Paragraph.Text 属性获取该段落的文本。
        • 将获取的文本写入文本文件。
          from spire.doc import *
          from spire.doc.common import *
          # 创建Document实例
          document = Document()
          # 加载Word文档
          document.LoadFromFile("测试.docx")
          # 获取第一个节
          section = document.Sections[0]
          # 获取该节的第二个段落
          paragraph = section.Paragraphs[1]
          # 获取该段落的文本
          para_text = paragraph.Text
          # 将获取的文本写入文本文件
          with open("段落文字.txt", "w", encoding="utf-8") as file:
              file.write(para_text)
          document.Close()
          

          使用 Python 读取Word文档特定页面的文字内容

          技术上来说,Word 文档中没有“页面”的概念,因为Word文档本质上是流式文档,流式布局。 为了方便页面操作,Spire.Doc for Python提供了FixedLayoutDocument类,用于将Word文档转换为固定布局。 使用该类和它提供的属性,可以获取Word文档中特定页面的文本。具体步骤如下:

          • 创建Document实例并使用Document.LoadFromFile()方法加载Word文档。
          • 创建FixedLayoutDocument类的实例,并将Document对象传给该类的构造函数。该步骤用于将Word文档转换为固定布局。
          • 使用FixedLayoutDocument.Pages[index]属性获取特定页面,然后获取该页面的文本。
          • 将获取的文本内容写入文本文件。
            from spire.doc import *
            from spire.doc.common import *
            # 创建Document实例
            document = Document()
            # 加载Word文档
            document.LoadFromFile("测试.docx")
            # 创建FixedLayoutDocument类的实例,并将Document对象传递给该类的构造函数
            # 该步骤用于将Word文档转换为固定布局
            layoutDoc = FixedLayoutDocument(document)
            # 获取第一页
            layoutPage = layoutDoc.Pages[0]
            # 获取该页的文本
            page_text = layoutPage.Text
            # 将获取的文本写入文本文件
            with open("页面文字.txt", "w", encoding="utf-8") as file:
                file.write(page_text)
            document.Close()
            

            使用 Python 读取Word文档特定行的文字内容

            一个Word页面可以包含多行文字,在某些特定情况下,你可能需要获取特定行的文字。以下步骤展示了如何获取Word文档特定行的文字内容:

            • 创建Document实例并使用Document.LoadFromFile()方法加载Word文档。
            • 创建FixedLayoutDocument类的实例,并将Document对象传给该类的构造函数。该步骤用于将Word文档转换为固定布局。
            • 使用FixedLayoutDocument.Pages[index]属性获取特定页面,然后获取该页面的特定行及其文本。
            • 将获取的文本内容写入文本文件。
              from spire.doc import *
              from spire.doc.common import *
              # 创建Document实例
              document = Document()
              # 加载Word文档
              document.LoadFromFile("测试.docx")
              # 创建FixedLayoutDocument类的实例,并将Document对象传递给该类的构造函数
              # 该步骤用于将Word文档转换为固定布局
              layoutDoc = FixedLayoutDocument(document)
              # 获取第一页
              layoutPage = layoutDoc.Pages[0]
              # 获取第一页第一列的第一行
              line = layoutPage.Columns[0].Lines[0]
              # 获取该行的文本
              line_text = line.Text
              # 将获取的文本写入文本文件
              with open("行文字.txt", "w", encoding="utf-8") as file:
                  file.write(line_text)
              document.Close()
              

              使用 Python 读取Word文档特定表格的文字内容

              Word文档中可能包含表格数据。提取表格数据有助于进行进一步数据处理或分析。以下步骤展示了如何获取Word文档中特定表格的数据内容:

              • 创建Document实例并使用Document.LoadFromFile()方法加载Word文档。
              • 使用Document.Sections[index] 属性获取文档的特定节。
              • 使用Section.Tables[index]属性获取该节中特定的表格。
              • 创建一个列表用于存储提取的表格数据。
              • 遍历表格中的所有行及每行的所有单元格。
              • 对于每个单元格,遍历其所有的段落。
              • 使用Paragraph.Text属性获取每个段落的文本并将它们添加至列表。
              • 将列表的内容写入文本文件。
                from spire.doc import *
                from spire.doc.common import *
                # 创建Document实例
                document = Document()
                # 加载Word文档
                document.LoadFromFile("报表.docx")
                # 获取第一个节
                section = document.Sections[0]
                # 获取该节的第一个表格
                table = section.Tables[0]
                # 创建一个列表用于存储提取的表格数据
                table_data = []
                # 遍历表格的所有行
                for i in range(table.Rows.Count):
                    row = table.Rows[i]
                    # 遍历每行的所有单元格
                    for j in range(row.Cells.Count):
                        cell = row.Cells[j]
                        # 遍历每个单元格的所有段落
                        for k in range(cell.Paragraphs.Count):
                            # 获取段落文本
                            paragraph = cell.Paragraphs[k]
                            text = paragraph.Text
                            # 将段落文本添加至列表
                            table_data.append(text + "\t")
                    table_data.append("\n")
                # 将列表的内容写入文本文件
                with open("表格数据.txt", "w", encoding = "utf-8") as text_file:
                    for data in table_data:
                        text_file.write(data)
                document.Close()
                

                使用 Python 读取Word文档页眉和页脚的文字内容

                页眉和页脚是位于 Word 文档中每页顶部和底部的部分。 它们通常包含文档标题或其他补充信息。以下步骤展示了如何获取Word文档页眉和页脚的文字内容:

                • 创建Document实例并使用Document.LoadFromFile()方法加载Word文档。
                • 使用Document.Sections[index] 属性获取文档的特定节。
                • 通过Section.HeadersFooters.Header和Section.HeadersFooters.Footer属性分别获取该节的页眉和页脚。
                • 创建一个列表用于存储提取的文本。
                • 遍历页眉中的所有段落,获取每个段落的文本并将其添加至列表。
                • 遍历页脚中的所有段落,获取每个段落的文本并将其添加至列表。
                • 将列表的内容写入文本文件。
                  from spire.doc import *
                  from spire.doc.common import *
                  # 创建Document实例
                  document = Document()
                  # 加载Word文档
                  document.LoadFromFile("页眉页脚.docx")
                  # 获取文档的第一个节
                  section = document.Sections[0]
                  # 获取该节的页眉
                  header = section.HeadersFooters.Header
                  # 获取该节的页脚
                  footer = section.HeadersFooters.Footer
                  # 创建列表用于存储提取的页眉和页脚文本内容
                  header_footer_text = []
                  header_footer_text.append("页眉文字:")
                  # 获取页眉的文本并将其添加至列表
                  for i in range(header.Paragraphs.Count):
                      headerPara = header.Paragraphs[i]
                      header_footer_text.append(headerPara.Text)
                  header_footer_text.append("页脚文字:")
                  # 获取页脚的文本并将其添加至列表
                  for i in range(footer.Paragraphs.Count):
                      footerPara = footer.Paragraphs[i]
                      header_footer_text.append(footerPara.Text)
                  # 将列表内容写入文本文件
                  with open("页眉页脚文字.txt", "w", encoding="utf-8") as file:
                      file.write("\n".join(header_footer_text))    
                  document.Close()
                  

                  这篇文章介绍了如何从Word文档及部分Word元素中提取文字内容,由于篇幅限制,并未涵盖所有的Word元素。你可以根据自己的文档元素,适当对代码进行修改或拓展。

                  本文完结。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]