使用Python退出Word文档的问题

这是我第一次使用这个,所以要友好:)基本上我的问题是我正在做一个程序,打开许多微软Word 2007文档,并从该文件中的某个表中读取,并写入该信息到一个Excel文件有很多1000字的文档。 我有这一切工作,但唯一的问题是,当我运行我的代码,它不会closuresMS Word打开每个文档后,我必须手动在程序运行结束时通过打开单词并从主菜单中select退出字选项。 另一个问题是,如果在第二次运行时连续运行这个程序,一切都会下地狱,无论select哪个文档,它都会重复打印相同的东西。我想这可能与MSword如何决定哪个文档处于活动状态有关,打开上次运行中未closures的最后一个活动文档。 反正这里是我的代码开幕式和结束部分我不会让你们与其他的::

MSWord = win32com.client.Dispatch("Word.Application") MSWord.Visible = 0 # Open a specific file #myWordDoc = tkFileDialog.askopenfilename() MSWord.Documents.Open("C:\\Documents and Settings\\fdosier" + chosen_doc) #Get the textual content docText = MSWord.Documents[0].Content charText = MSWord.Documents[0].Characters # Get a list of tables ListTables = MSWord.Documents[0].Tables ------Main Code--------- MSWord.Documents.Close MSWord.Documents.Quit del MSWord 

基本上,Python不是VBA,所以这个:

 MSWord.Documents.Close 

相当于:

 getattr(MSWord.Documents, "Close") 

即你只是得到一些方法对象,并没有做任何事情。 您需要使用调用操作符 (括号:) 调用方法:

 MSWord.Documents.Close() 

据此.Quit

在MSWord.Quit之前,您尝试使用:

 MSWord.ActiveWindow.Close 

或者更简单的做

 MSWord.Quit 

我真的不明白,如果你正在closures文件或应用程序。

我想你需要一个MSWord.Quit在最后(之前和/或代替del)