gpt4 book ai didi

python - 计算 Microsoft Word 文件中的行数,而不考虑自动换行

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:43 25 4
gpt4 key购买 nike

我有一个 .docx Microsoft Word 文件,格式大致如下:

TAG    Lorem ipsum dolor sit amet, consectetur adipiscing 
elit, sed do eiusmod tempor
TAG_2 Lorem ipsum dolor sit amet, consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi
TAG Text text text text text text text text text text

通过自动换行实现缩进(如果在简单的 txt 编辑器中复制粘贴,上述文本将导致 3 行而不是 7 行)。

我的任务是自动计算分配给标签 s.t. 的行数。上面的文件会产生类似这样的结果:

TAG    2
TAG_2 4
TAG 1

现在我通过指定字体文件、字体大小和平均线长,然后划分线的长度(用 PIL.ImageFont.getsize() 测量)手动完成,但是这种方法确实很容易出错,并且没有涵盖所有可能的情况(例如字体在文件中更改)。
不幸的是我无法控制该文件,因此我无法在计算行数之前正确格式化它(因为原因会要求)。

有没有办法在 Python 中做到这一点?我找到了 python-docx package但它的功能似乎有点有限。

另请注意,.docx 格式不是强制性的,如果需要,我也可以将文件转换为 .odt。

附上我的设置(在 LibreOffice 中)的屏幕截图以使其更加清晰。

enter image description here

最佳答案

用VBA计算文档中所有段落的行数和字数:

Sub ParaStatsCount()
Dim Para As Paragraph
For Each Para In ActiveDocument.Paragraphs
With Para.Range
MsgBox .Text & vbCr & "Line Count = " & .ComputeStatistics(wdStatisticLines) & vbCr _
& "Word Count = " & .ComputeStatistics(wdStatisticWords)
End With
Next
End Sub

如果您可以使用 Python 自动化 Word,那么应该可以使用相同(和其他)方法。

关于python - 计算 Microsoft Word 文件中的行数,而不考虑自动换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48626396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com