You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过win32com统计Word文档字数?附相关代码片段

如何用Python统计Word文档的字数?

嘿,我来帮你搞定这个Word字数统计的问题!你的代码目前是新建了一个Word文档并插入了一段文本,要实现统计已有Word文档字数的需求,我们可以对代码做一些调整,同时Word的COM对象本身就提供了现成的统计方法,非常方便。

核心思路

Word的COM接口里有两种常用的字数统计方式:

  • 直接用Words.Count属性:快速获取文档中的单词(含标点)数量
  • ComputeStatistics方法:和Word界面中「字数统计」功能的结果完全一致,更精准

修改后的完整代码(打开已有文档统计)

import win32com.client as win32
from time import sleep

# 初始化Word应用
word = win32.gencache.EnsureDispatch('Word.Application')
word.Visible = True  # 可以设为False后台运行,这里设True方便你查看
sleep(1)

# 打开已有的Word文档,替换成你的实际文档路径(注意路径写法:用原始字符串r""或者转义\\)
doc = word.Documents.Open(r"C:\Users\YourName\Documents\your_file.docx")

# 方式1:快速统计(包含标点符号)
word_count_quick = doc.Words.Count
print(f"快速统计字数(含标点):{word_count_quick}")

# 方式2:精准统计(和Word界面的字数统计一致)
word_count_precise = doc.ComputeStatistics(win32.constants.wdStatisticWords)
print(f"精准统计字数:{word_count_precise}")

# 记得关闭文档和Word进程(可选,避免后台残留)
doc.Close(SaveChanges=False)  # 不需要保存就设为False
word.Quit()

如果是统计你代码中插入的文本字数

如果只是想统计你当前代码里插入的那段文本的字数,只需要在InsertAfter之后加上统计代码就行:

import win32com.client as win32
from time import sleep

word = win32.gencache.EnsureDispatch('Word.Application')
doc = word.Documents.Add()
word.Visible = True
sleep(1)

rng = doc.Range(0,0)
rng.InsertAfter('Can you tell me how many words are there in this sentence?')

# 统计这段文本的字数
count = doc.ComputeStatistics(win32.constants.wdStatisticWords)
print(f"这段文本的字数是:{count}")  # 输出应该是13

注意事项

  • 路径一定要写对:Windows路径里的斜杠要用\\或者用原始字符串r"路径"
  • 如果不需要看到Word窗口,可以把word.Visible = True改成False,后台运行更高效
  • 用完记得调用doc.Close()word.Quit(),避免Word进程在后台残留占用资源

内容的提问来源于stack exchange,提问作者Chan

火山引擎 最新活动