Как отловить исключение pywin32com при открытии файлов - PullRequest
0 голосов
/ 14 июня 2011

Я пытаюсь открыть файл Excel в python, используя COM, и пытаюсь поймать файл не найден ошибка:

Сначала я попытался отловить ошибку IOError:

try:
   output = xl.Workbooks.Open(Params.workbookName)
except IOError as reason:
   print reason
   exit()

Но COM не вызывает ошибку ввода-вывода, когда у него есть проблема с не найденным файлом, вместо этого он вызывает что-то с именем com_error:

com_error: (-2147352567, 'Исключение произошло. ', (0, u'Microsoft Office Excel ', u "' asdf.xlsx 'не может быть найденный. Проверьте правильность написания файла имя и убедитесь, что файл расположение правильное. \ n \ nЕсли вы пытаясь открыть файл из вашего списка из последних использованных файлов, убедитесь, что что файл не был переименован, перемещен или удален. ", u'C: \ Program Файлы (x86) \ Microsoft Office \ Office12 \ 1033 \ XLMAIN11.CHM», 0, -2146827284), нет)

так логично я попробовал это:

try:
   output = xl.Workbooks.Open(Params.workbookName)
except com_error as reason:
   print reason
   exit()

но ...

NameError: global name 'ComError' is not defined

1 Ответ

1 голос
/ 14 июня 2011

Попробуйте:

from pythoncom import com_error

и поймайте его в своем except блоке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...