我需要更改许多文件中的一些自定义属性值。这是一个代码示例 - 我如何为单个文件执行此操作:
import win32com.client
MSWord = win32com.client.Dispatch("Word.Application")
MSWord.Visible = False
doc = MSWord.Documents.Open(file)
doc.CustomDocumentProperties('Some Property').Value = 'Some New Value'
doc.Save()
doc.Close()
MSWord.Quit()
运行相同的代码"Excel.Application"
(稍作改动——只是为了让它工作)给了我很好的结果。但是,当我使用doc.Save()
或doc.SaveAs(same_file)
用于 MSWord 时,它会默默地失败。我不知道为什么,但没有保存更改。
现在我的解决方法是使用SaveAs
不同的文件,它也很好用。但我想了解为什么我对 MSWord 文件有如此奇怪的行为以及如何修复它?
编辑:我改变了我的代码,而不是误导那些因为 try/except 导致静默失败的人。但是,感谢他们所有人在我的代码中发现了该缺陷:)