在pywin32中打开一个MS Word文件

3

我无法使用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个回答

10

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

你可以尝试这样做:

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。


我做了和Daniel Wigmore一模一样的事情,但是它没有起作用,然后我按照@rattray建议的去做,它让我完全到达了我需要到达的地方。太棒了! - cjohnson318

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()

2
我建议使用以下方法:
>>> import win32api
>>> win32api.ShellExecute(0, 'open', 'D:\\test.docx', '', '', 1)

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接