Мне нужно изменить некоторые значения настраиваемых свойств во многих файлах. Ниже приведен пример кода - как я это делаю для одного файла:Почему сохранение документа MSWord может бесшумно сбой?
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 и как оно может быть исправлено?
Редактировать: Я поменял свой код, а не на неверное направление людей с молчаливым сбоем. Однако, благодаря всем им для нахождения этого дефекта в моем коде :)
- это ваш фактический код сейчас? – SilentGhost
Да, это так, и я думаю, что все правильно. Однако это не работает на моей машине, и я не могу понять, почему - вот почему я спрашиваю об этом. Возможно, у кого-то была такая же проблема ... –
Мне удалось воспроизвести ваши результаты, но понятия не имею, как их исправить. Я отвечаю на этот вопрос ... WTF? – tgray