使用Python获取Word文档关键信息

 更新时间:2024年03月19日 14:17:26   作者:Eiceblue  
计算 Word 文档的页数、字数等信息是出版、学术和内容管理等领域的一项基本任务,本文介绍了使用Python直接获取Word文档页数、字数、段落数、节数等信息的方法,希望对大家有所帮助

计算 Word 文档的页数、字数等信息是出版、学术和内容管理等领域的一项基本任务。准确的页数和字数对于评估文档长度、估算印刷成本、分析文本复杂性以及确保符合格式化指南至关重要。逐个预览文档查看相关信息是非常麻烦的事情,我们可以在不预览文档的情况下,用Python实现快速批量地获取文档中的页数、字数、段落数、节数、词数等关键信息,实现文档的高效管理,简化相关任务流程。

本文所使用的方法需要用到Spire.Doc for Python,可从官网获取通过PyPI:pip install Spire.Doc

获取Word文档页数、字数、字符数、段落数以及带空格的字符数

API中提供的 Document.BuiltinDocumentProperties 属性可以获取文档中的一些内置属性,如页数、词数、字符数等信息。以下是操作步骤:

1.导入所需库:spire.doc 和 spire.doc.common 用于处理 Word 文档,os 用于操作系统文件及目录操作。

2.定义待遍历的文件夹路径。

3.创建 Document 类的一个实例 doc,用于加载和操作 Word 文档。

4.使用 os.walk() 遍历指定文件夹及其子文件夹中的所有文件。

5.对于遍历到的每个文件:

  • 检查文件扩展名是否为 .doc 或 .docx,若是则表示为 Word 文档。
  • 使用 os.path.join() 组合完整文件路径,并使用 doc.LoadFromFile() 方法加载该 Word 文档。
  • 调用 doc.UpdateWordCount() 更新文档的字数统计信息,确保统计数据准确。
  • 获取文档的内置属性,存储在 builtinProperties 变量中。
  • 从内置属性中分别提取文档的页数(PageCount)、段落数(ParagraphCount)、字符数(CharCount)、包含空格的字符数(CharCountWithSpace)和字数(WordCount)。
  • 将这些统计信息与对应的文件名一起打印出来。

6.在遍历并处理完所有 Word 文档后,调用 doc.Close() 关闭文档,释放资源。

代码示例

from spire.doc import *
from spire.doc.common import *
import os

# 定义文件夹路径
folderPath = "Documents"

# 创建Document实例
doc = Document()

# 遍历文件夹中的文档
for root, dirs, files in os.walk(folderPath):
    for file in files:
        # 判断文件是否为Word文档
        if file.endswith(('.doc', '.docx')):
            # 载入Word文档
            doc.LoadFromFile(os.path.join(root, file))
            # 更新字数统计(确保字数统计是最新的)
            doc.UpdateWordCount()
            # 获取文档内置属性
            builtinProperties = doc.BuiltinDocumentProperties
            # 获取页数
            pageCount = builtinProperties.PageCount
            # 获取段落数
            paragraphCount = builtinProperties.ParagraphCount
            # 获取字符数
            charCount = builtinProperties.CharCount
            # 获取包含空格的字符数
            charCountWithSpaces = builtinProperties.CharCountWithSpace
            # 获取字数
            wordCount = builtinProperties.WordCount
            # 输出结果
            print(f"文档——{file} 页数为:", pageCount)
            print(f"文档——{file} 段落数为:", paragraphCount)
            print(f"文档——{file} 字符数为:", charCount)
            print(f"文档——{file} 包含空格的字符数为:", charCountWithSpaces)
            print(f"文档——{file} 字数为:", wordCount)
doc.Close()

输出结果

用Python计算Word文档节的数量

节的计数不被统计在内置属性中,但我们可以直接使用 Document.Sections.Count 属性计算节的数量。以下是操作步骤:

1.导入所需模块:spire.doc 和 spire.doc.common 用于处理 Word 文档,os 用于操作系统文件及目录操作。

2.定义待遍历的文件夹路径。

3.创建 Document 类的实例 doc,用于加载和操作 Word 文档。

4.使用 os.walk() 遍历指定文件夹及其子文件夹中的所有文件。

5.对于遍历到的每个文件:

  • 检查文件扩展名是否为 .doc 或 .docx,如果是,则表示为 Word 文档。
  • 使用 os.path.join() 组合得到文件的完整路径,并使用 doc.LoadFromFile() 方法加载该 Word 文档。
  • 从文档对象 doc 中获取文档中节(section)的数量,存储在变量 sectionCount 中。
  • 将文档名和节的数量一同打印出来,展示文档内部的结构信息。

6.在遍历并处理完所有匹配的 Word 文档后,调用 doc.Close() 方法关闭文档,释放资源。

代码示例

from spire.doc import *
from spire.doc.common import *
import os

# 定义文件夹路径
folderPath = "Documents"

# 创建Document实例
doc = Document()

# 遍历文件夹中的文件
for root, dirs, files in os.walk(folderPath):
    for file in files:
        # 判断文件是否为Word文档
        if file.endswith(('.doc', '.docx')):
            # 载入Word文档
            doc.LoadFromFile(os.path.join(root, file))
            # 获取文档中节的数量
            sectionCount = doc.Sections.Count
            # 输出结果
            print(f"文档——", file, " 节数为:", sectionCount)
doc.Close()

输出结果

到此这篇关于使用Python获取Word文档关键信息的文章就介绍到这了,更多相关Python获取Word信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用python生成目录树

    使用python生成目录树

    这篇文章主要为大家详细介绍了使用python生成目录树、文件的程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python调用Prometheus监控数据并计算

    Python调用Prometheus监控数据并计算

    Prometheus是一套开源监控系统和告警为一体,由go语言(golang)开发,是监控+报警+时间序列数据库的组合。本文将介绍Python如何调用Prometheus实现数据的监控与计算,需要的可以参考一下
    2021-12-12
  • Python爬虫之Selenium实现键盘事件

    Python爬虫之Selenium实现键盘事件

    这篇文章主要介绍了Python爬虫之Selenium实现键盘事件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Python利用物理引擎Pymunk编写一个解压小游戏

    Python利用物理引擎Pymunk编写一个解压小游戏

    这篇文章主要为大家详细介绍了Python如何利用物理引擎Pymunk编写一个解压小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以尝试一下
    2023-01-01
  • django中forms组件的使用与注意

    django中forms组件的使用与注意

    这篇文章主要给大家介绍了关于django中forms组件的使用与注意的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用django具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • 实例讲解python中的序列化知识点

    实例讲解python中的序列化知识点

    本篇文章通过代码实例给大家详细分享了关于python中的序列化知识点内容,有兴趣的朋友们可以学习下。
    2018-10-10
  • opencv-python图像配准(匹配和叠加)的实现

    opencv-python图像配准(匹配和叠加)的实现

    图像配准需是指对不同条件下得到的两幅或多幅图像进行匹配、叠加的过程。本文详细的介绍了如何使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Python CNN卷积神经网络实战教程深入讲解

    Python CNN卷积神经网络实战教程深入讲解

    CNN,即卷积神经网络,主要用于图像识别,分类。由输入层,卷积层,池化层,全连接层(Affline层),Softmax层叠加而成。卷积神经网络中还有一个非常重要的结构:过滤器,它作用于层与层之间(卷积层与池化层),决定了怎样对数据进行卷积和池化
    2022-12-12
  • 利用Python脚本实现ping百度和google的方法

    利用Python脚本实现ping百度和google的方法

    最近在做SEO的时候,为了让发的外链能够快速的收录,想到了利用ping的功能,google和百度都有相关的ping介绍,有兴趣的朋友可以去看看相关的知识。下面这篇文章主要介绍了利用Python脚本实现ping百度和google的方法,需要的朋友可以参考借鉴,一起来看看吧。
    2017-01-01
  • Python实现识别手写数字大纲

    Python实现识别手写数字大纲

    这篇文章主要为大家详细介绍了Python实现识别手写数字的大纲,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01

最新评论