2010-10-21 58 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