要在多个函数中共用一个xlwings异常捕获函数,并且在异常捕获中输出xlwings操作的文件名,可以使用Python的装饰器来实现。\n\n首先,创建一个装饰器函数,用于捕获异常并输出文件名:\n\npython\nimport xlwings as xw\n\ndef catch_exceptions(func):\n def wrapper(*args, **kwargs):\n try:\n return func(*args, **kwargs)\n except Exception as e:\n wb = xw.Book.caller()\n print(f"Error occurred in file: {wb.name}")\n print(f"Error message: {str(e)}")\n return wrapper\n\n\n然后,在需要捕获异常的函数上添加@catch_exceptions装饰器,如下所示:\n\npython\n@catch_exceptions\ndef function1():\n # 此函数中的xlwings操作可能会抛出异常\n ...\n\n@catch_exceptions\ndef function2():\n # 此函数中的xlwings操作可能会抛出异常\n ...\n\n\n现在,当function1function2中的xlwings操作抛出异常时,异常将被catch_exceptions装饰器捕获,并输出相关信息,包括文件名。\n\n注意,使用xw.Book.caller()可以获取当前xlwings操作所在的工作簿对象,然后通过.name属性获取文件名。

Python xlwings 异常捕获:使用装饰器共用异常捕获函数并输出文件名

原文地址: https://www.cveoy.top/t/topic/qkOe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录