首页 > 解决方案 > 在 * .docx 中使用 python 和 win32com 进行拼写检查 - * .docx 的问题

问题描述

我有一个完全分解的问题。这个方法我来了很久,闻一闻。

我从网站下载文本并检查其拼写。很难用字典(时间和硬件)检查这一点,所以我将所有文本下载到 .txt 文件,然后将其复制到 .docx 文件,它会自动检查 Microsoft Word 的拼写,以红色突出显示错误。

我找到了如何从 python 中的 .docx 文件(库 win32com.client)中获取拼写错误,这很好,我开始编写一个程序来将网页中的文本保存到 .docx 文件并立即测试它的拼写,但在这里我得到一个错误。

 # file newfile.docx is a file where i save all text from site
 
 docX = docx.Document()
 
 def imatoohard():
     #time.sleep(10)
     wordapp = win32com.client.gencache.EnsureDispatch("Word.Application")
     worddoc = wordapp.Documents.Open(r"C:\Python\newfile.docx")
     print("start as optimist")
     time.sleep(1)
     if worddoc.SpellingErrors.Count:
         print("0x21")
         for err in worddoc.SpellingErrors:
             print("0x33")
             docX.add_paragraph(http_source_str)


         worddoc.ActiveWindow.Close()
         
imatoohard()

这只是一段检查文件拼写的代码(上面),下面是对文件的写入,最简单的方法:

doc1 = docx.Document()
doc1.add_paragraph(some_data_text)
doc1.sve("newfile.docx")

一切都很好,第一个代码检查拼写,第二个代码将文本保存为 docx 文件格式。但是拼写检查器不会检查程序二创建的文件的拼写。

当我打开,键入文本并手动保存时,一切都很好,当我对程序执行相同操作时,docx 文件处于“兼容模式”并且它没有检测或设置语言,我必须使用 Microsoft Word 设置手动翻译,并且只有然后它会检测语言并突出显示拼写错误的单词,然后第一个程序才能工作。

有没有办法做到这一点?我已经坐了这么久,我不知道我是否会放弃。这对我来说非常有用,因为我有一千页(十万字)要检查。有没有人接触过这个?

设置如:

file = open('file1.txt', 'r', encoding='utf8', errors='ignore')

不适用于 .docx 文件

标签: python-3.xselenium-webdriverwin32comspell-checkingpython-docx

解决方案


推荐阅读