Найти - Пользователи
Полная версия: AttributeError: Word.Application.Documents
Начало » Python для новичков » AttributeError: Word.Application.Documents
1
iliko
Добрый день!

Прошу помощи с разобраться в причине ошибки и помочь с решением.

Есть кусок кода, который беспроблемно работал несколько месяцев, однако, вчера стал выдавать ошибку “AttributeError: Word.Application.Documents”.

Кусок кода:
import win32com.client as win32

att1 = ‘C:\\PYTHON\\1.docx’
word = win32.Dispatch('Word.Application')
doc = word.Documents.Open(att1)
doc.Content.Copy()
doc.Close()

Ошибка:
AttributeError Traceback (most recent call last)
<ipython-input-13-8c25530b8906> in <module>()
6 word = win32.Dispatch('Word.Application')
7 #word = win32.Dispatch('Excel.Application')
—-> 8 doc = word.Documents.Open(att1)
9 doc.Content.Copy()
10 doc.Close()

C:\Anaconda3\lib\site-packages\win32com\client\dynamic.py in __getattr__(self, attr)
525
526 # no where else to look.
–> 527 raise AttributeError(“%s.%s” % (self._username_, attr))
528
529 def __setattr__(self, attr, value):

AttributeError: Word.Application.Documents
iliko
Попробовал на другом компе. Получаю схожую ошибку. На обоих компах Python3 в анакондовской упаковке, и на обоих компах всё работало. Ни винда, ни анаконда не обновлялись.

Ошибка:
AttributeError Traceback (most recent call last)
<ipython-input-3-0d9dfecd7b3a> in <module>()
376 word = win32.Dispatch(“Word.Application”)
377 doc = word.Documents.Open(att_file)
–> 378 doc.Content.Copy()
379 doc.Close()
380 ## Скопировали ##

C:\Anaconda3\lib\site-packages\win32com\client\dynamic.py in __getattr__(self, attr)
525
526 # no where else to look.
–> 527 raise AttributeError(“%s.%s” % (self._username_, attr))
528
529 def __setattr__(self, attr, value):

AttributeError: Open.Content
iliko
На втором компе скрипт заработал сам по себе, ошибку не выдаёт. КАК ТАК??? На первом ситуация сохраняется.
Striver
Ни винда, ни анаконда не обновлялись.
Судя по-всему, винда тут ни при чём вообще, работа ведь конкретно с Офисом идёт. Но, полагаю, офис тоже не обновлялся.

Винды с офисом под рукой нет, у себя воспроизвести не смогу, но выглядит так, как будто проблемы с каким-то конкретным документом, потому что ошибка в первом сообщении вываливается при его открытии:
—-> 8 doc = word.Documents.Open(att1)
Исходя из этого предлагается потестировать с разными doc-файлами, возможно падать будет только на некоторых из них.
iliko
Тестировал с разными файлами (Word, Excel) и с разными путями. Эффект тот же.

Решилось, как ни странно, перезагрузкой компьютера.

Простейший код, а такая странная ситуация. Подозреваю, конечно, что это механизм win32, судя по тому, что помогла перезагрузка, но остаётся вопрос: почему втором компе ошибка пропала сама по себе? Можно ли каким-то образом это копнуть, т.к. очень хочется понять?

Striver, спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB