Python 使用装饰器捕获 xlwings 函数异常并输出文件名
您可以定义一个装饰器函数来捕获异常并输出异常文件名。以下是一个示例:\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 # 获取异常发生的文件名\n filename = func.__code__.co_filename\n print(f"Exception in {filename}: {e}")\n return wrapper\n\n@catch_exceptions\ndef function1():\n # 函数1的代码\n\n@catch_exceptions\ndef function2():\n # 函数2的代码\n\n# 使用xlwings打开工作簿\nwb = xw.Book("example.xlsx")\n\n# 在工作簿中运行函数1和函数2\nxw.apps.active.books["example.xlsx"].set_mock_caller()\nfunction1()\nfunction2()\n\n\n在上面的示例中,我们定义了一个catch_exceptions装饰器函数,它接受一个函数作为输入并返回一个新的函数。新函数在执行被装饰的函数时捕获异常并输出异常的文件名和具体信息。您可以在需要进行异常捕获的函数上使用@catch_exceptions装饰器。\n\n请注意,为了在xlwings中正确捕获异常,我们使用了set_mock_caller方法来模拟函数的调用者为当前的活动工作簿。这样可以确保异常信息中包含正确的文件名。\n\n希望这可以帮助到您!如果有任何进一步的问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/qkNZ 著作权归作者所有。请勿转载和采集!