2010-10-21 56 views
2

我有一个python应用程序,需要将word文档放入。 是否有任何选项只能从python中读取模式的文档文件?使用python打开带有读取模式的word文档

+0

@Matt -OP想要以只读模式启动Word。如果有任何选项可以从命令行以只读模式启动Word,那么也可以从Python执行此操作。 – eumiro 2010-10-21 20:38:14

+0

@eumiro - 哦!这对我来说一点也不清楚,但听起来很合理...... – 2010-10-21 20:42:33

回答

4

你会发现下面的页面上一些非常有用的样本:

Python for Windows: Microsoft Office

打开一个Word文档只读can be achieved这样,FalseApplication.Documents.Open第三个参数告诉Word以只读方式打开文档。

import win32com.client, pythoncom, time 

def word(wordfile): 
    pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED) 
    myWord = win32com.client.DispatchEx('Word.Application') 
    myDoc = myWord.Documents.Open(wordfile, False, False, False) 

    ... 

    myDoc.Close() 
    myWord.Quit() 
    del myDoc 
    del myWord 
    pythoncom.CoUninitialize() 
+0

这真的有帮助,但你知道为什么这只是从第二次调用函数字的作品? – AKM 2010-10-21 21:40:14

+0

@AKM:第一次发生什么? – 2010-10-21 22:07:46

+0

它什么都不做,但是我看到任务管理器上运行的Winword应用程序 – AKM 2010-10-21 22:12:39

2

你总是可以通过命令火了起来,从命令行MSWORD(检查路径)

C:\Program Files\Microsoft Office\Office\Winword.exe /f <filename> 

我假设你要启动MSWORD,而不是阅读Word文档编程。 为了能够从python那样做,你需要使用这个工具来运行外部命令。

看到:http://docs.python.org/library/os.html#os.system

import os 
os.system(command) 

或:

import os 
import subprocess 
subprocess.call(command) 

见的各种命令行选项于:

+0

这真的很有帮助,但winword.exe是在officexx下创建的,这意味着我的python应用程序在某些officexx下不能正常工作,它不同于在我的电脑上找到的oficeYY – AKM 2010-10-21 21:41:37

+0

@AKM:winword.exe通常在路径上,所以只需尝试使用双字.exe没有路径。 – pyfunc 2010-10-21 21:49:11

0

我同意@pyfunc。只是一个小建议。当路径中有空格时,有时不起作用。所以你需要像这样提到它:

C:\"Program Files (x86)"\"Microsoft Office 2013"\Office15\WINWORD.exe D:\inchowar\Desktop\Junk.docx