Cómo atrapar una exception de pywin32com al abrir files

Estoy tratando de abrir un file de Excel en Python usando COM, y tratando de atrapar el error de file no encontrado:

Primero intenté capturar el IOError:

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

Pero COM no genera un error IO cuando tiene un problema de file no encontrado, sino que plantea algo llamado com_error:

com_error: (-2147352567, 'Excepción ocurrió.', (0, u'Microsoft Office Excel ', u "' asdf.xlsx 'no se pudo encontrar. Compruebe la ortografía del nombre del file y verifique que la location del file sea correcta) . \ n \ nSi intenta abrir el file desde su list de files usados ​​más recientemente, asegúrese de que el file no haya sido renombrado, movido o eliminado. ", u'C: \ Archivos de progtwig (x86) \ Microsoft Office \ Office12 \ 1033 \ XLMAIN11.CHM ', 0, -2146827284), Ninguno)

así que lógicamente probé esto:

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

pero…

 NameError: global name 'ComError' is not defined 

Tratar:

 from pythoncom import com_error 

y atraparlo en tu bloque except