擅长:python、mysql、java
<p>如果您不想了解Word建模文档的复杂方式,以及如何通过Office对象模型公开文档,那么一个更简单的解决方案是让Word保存文件的纯文本副本。在</p>
<p>这里有很多选择。使用<code>tempfile</code>创建临时文本文件,然后将其删除,还是将永久文本文件与doc文件一起存储,以便以后重复使用?使用Unicode(在微软的说法中,这意味着带有BOM的UTF-16-LE)或编码文本?等等。所以,我只选择一些合理的,您可以查看<a href="http://msdn.microsoft.com/en-us/library/bb221597%28v=office.12%29.aspx" rel="nofollow">^{<cd2>}</a>,<a href="http://msdn.microsoft.com/en-us/library/bb238158%28v=office.12%29.aspx" rel="nofollow">^{<cd3>}</a>等文档来修改它。在</p>
<pre><code>wdFormatUnicodeText = 7
for infile in glob.glob(os.path.join(r'mypath', '*.docx')):
print(infile)
doc = word.Documents.Open(infile)
txtpath = os.path.splitext('infile')[0] + '.txt'
doc.SaveAs(txtpath, wdFormatUnicodeText)
doc.Close()
with open(txtpath, encoding='utf-16') as f:
process_the_file(f)
</code></pre>
<p>正如您在评论中所指出的,这对复杂事物(如表、多列文本等)所做的可能并不完全是您想要的。在这种情况下,您可能需要考虑另存为,例如,<code>wdFormatFilteredHTML</code>,Python有很好的解析器来处理这个问题。(与win32com Word It相比,美化一个表要容易得多。)</p>