Форум сайта python.su
0
Добрый день!
Прошу помощи с разобраться в причине ошибки и помочь с решением.
Есть кусок кода, который беспроблемно работал несколько месяцев, однако, вчера стал выдавать ошибку “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
Офлайн
0
Попробовал на другом компе. Получаю схожую ошибку. На обоих компах 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
Офлайн
0
На втором компе скрипт заработал сам по себе, ошибку не выдаёт. КАК ТАК??? На первом ситуация сохраняется.
Офлайн
22
Ни винда, ни анаконда не обновлялись.Судя по-всему, винда тут ни при чём вообще, работа ведь конкретно с Офисом идёт. Но, полагаю, офис тоже не обновлялся.
—-> 8 doc = word.Documents.Open(att1)Исходя из этого предлагается потестировать с разными doc-файлами, возможно падать будет только на некоторых из них.
Офлайн
0
Тестировал с разными файлами (Word, Excel) и с разными путями. Эффект тот же.
Решилось, как ни странно, перезагрузкой компьютера.
Простейший код, а такая странная ситуация. Подозреваю, конечно, что это механизм win32, судя по тому, что помогла перезагрузка, но остаётся вопрос: почему втором компе ошибка пропала сама по себе? Можно ли каким-то образом это копнуть, т.к. очень хочется понять?
Striver, спасибо!
Офлайн