在pywin32中打开MS Word文件
我无法使用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)
>>>
3 个回答
2
我建议使用这个方法:
>>> import win32api
>>> win32api.ShellExecute(0, 'open', 'D:\\test.docx', '', '', 1)
这个方法会用默认的程序打开文件(比如 .docx 格式的文件,或者其他类型的文件),例如 Microsoft Word。
3
我正在使用两个选项。进行这些操作的好资料是这本书。虽然这本书有点旧,但里面仍然有很多不错的例子。
第一个:
from win32com.client import Dispatch
myWord = Dispatch('Word.Application')
myWord.Visible = 1 # comment out for production
myWord.Documents.Open(working_file) # open file
# ... doing something
myWord.ActiveDocument.SaveAs(new_file)
myWord.Quit() # close Word.Application
第二个:
from win32com import client
app = client.gencache.EnsureDispatch("Word.Application")
app.Documents.Open(file) # open file
app.ActiveDocument.ActiveWindow.View.Type = 3 # prevent that word opens itself
app.Quit()
12
你需要从正确的位置打开文件。
你可以试试这个:
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。