Python 在pywin32中打开MS Word文件

Python 在pywin32中打开MS Word文件,python,ms-word,pywin32,Python,Ms Word,Pywin32,我无法使用pywin32打开word文件。我一直在寻找pywin32的教程,但没有一个代码是有效的。word文档的位置是C:\Users\User\Documents\python progs\misc\formatting for isn import win32com.client as win32 word = win32.gencache.EnsureDispatch('Word.Application') word.Visible = False word.Documents.Ope

我无法使用pywin32打开word文件。我一直在寻找pywin32的教程,但没有一个代码是有效的。word文档的位置是C:\Users\User\Documents\python progs\misc\formatting for isn

import win32com.client as win32

word = win32.gencache.EnsureDispatch('Word.Application')
word.Visible = False
word.Documents.Open('C:\\sectarianism.doc')


Traceback (most recent call last):
  File "C:\Users\User\Documents\python progs\misc\formatting for isn\formatting.py", line 5, in <module>
    word.Documents.Open('C:\\sectarianism.doc')
  File "C:\Python25\lib\site-packages\win32com\gen_py\00020905-0000-0000-C000-000000000046x0x8x4\Documents.py", line 96, in Open
    , Visible, OpenAndRepair, DocumentDirection, NoEncodingDialog, XMLTransform
com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Word', u'This file could not be found.\r (C:\\sectarianism.doc)', u'C:\\Program Files\\Microsoft Office\\Office12\\1033\\WDMAIN11.CHM', 24654, -2146823114), None)
>>> 
将win32com.client作为win32导入
word=win32.gencache.EnsureRedispatch('word.Application')
word.Visible=False
word.Documents.Open('C:\\sectarianism.doc')
回溯(最近一次呼叫最后一次):
文件“C:\Users\User\Documents\python progs\misc\formatting for isn\formatting.py”,第5行,在
word.Documents.Open('C:\\sectarianism.doc')
文件“C:\Python25\lib\site packages\win32com\gen_py\00020905-0000-0000-C000-0000000000 46x0x8x4\Documents.py”,第96行,处于打开状态
、可见、OpenAndRepair、DocumentDirection、NoEncodingDialog、XMLTransform
com_错误:(-2147352567,“发生异常”。(0,u'Microsoft Word',u'找不到此文件。\r(C:\\sectarianism.doc)',u'C:\\Program Files\\Microsoft Office\\Office12\\1033\\WDMAIN11.CHM',24654,-2146823114),无)
>>> 

您需要从正确的位置打开文件

你可以试试这个:

import win32com.client as win32
import os

word = win32.gencache.EnsureDispatch('Word.Application')
word.Visible = False
doc_path = os.path.join('c:', os.sep, 'Users', 'User', 'Documents', 'python', 'progs', 'misc', 'formatting for isn', 'sectarianism.doc')
doc = word.Documents.Open(doc_path)
当然,记得用doc.close()关闭文档,然后用Word.quit()退出Word

我建议这种方法:

>>> import win32api
>>> win32api.ShellExecute(0, 'open', 'D:\\test.docx', '', '', 1)

这将在默认程序(例如Microsoft Word)下打开文件(.docx或任何其他类型)。

我使用两个选项。这些操作的良好来源是。虽然已经很老了,但仍然有很多好的例子

第一:

从win32com.client导入分派
myWord=Dispatch('Word.Application')
myWord.Visible=1#注释出来用于生产
myWord.Documents.Open(工作文件)#打开文件
# ... 做某事
myWord.ActiveDocument.SaveAs(新文件)
myWord.Quit()#关闭Word.Application
第二:

从win32com导入客户端
app=client.gencache.encureDispatch(“Word.Application”)
app.Documents.Open(文件)#Open file
app.ActiveDocument.ActiveWindow.View.Type=3#防止该单词自动打开
app.Quit()

遇到同样的问题,我刚刚将地址字符串中的所有斜杠“/”改为双斜杠:“\\”。
一切都很顺利。

我做了丹尼尔·维格莫尔做过的事情,但没有成功,然后我做了@rattray建议的事情,这让我找到了我需要去的地方。杰出的