为 `traceback.format_exc()` 构建快捷方式
Build shortcut for `traceback.format_exc()`
所以我这样使用traceback.format_exc()
:
try:
# Some code
except:
traceback_msg = '%s' % traceback.format_exc()
print(traceback_msg)
# Doing some stuff with it
在我的代码中经常将它输出到一个额外的 file/stream 并且通过编写代码我厌倦了继续输入它。有没有一种简单的方法来定义一个全局的 shortcut/ExceptionHandler 来保持关心并且很容易从各个地方调用?
您可以使用目录 PYTHONPATH
中的模块,该模块以短名称导入(并且它本身也有一个短名称)。
在您的设置脚本中设置环境变量 PYTHONPATH
以指向一个目录,例如在 .bashrc
在 Linux 中,放
export PYTHONPATH=/path/to/my_dir:$PYTHONPATH
(如果任何值已经存在,您可能想要进行测试,如果不存在,请在此处取消冒号,但这并不重要。)
并创建 /path/to/my_dir/tb.py
包含
from traceback import format_exec as fe
然后你可以进行交互,例如:
>>> import tb
>>> try:
... a = 1 / 0
... except:
... msg = tb.fe()
... print(">>>", msg)
给予
>>> Traceback (most recent call last):
File "<stdin>", line 2, in <module>
ZeroDivisionError: division by zero
请记住,尽管您的 tb.py
可能会与您尝试使用的另一个也称为 tb.py
的模块发生冲突。也许为了安全起见,不要一直设置 PYTHONPATH
,但是之后(再次以 Linux 为例),在您的 .bashrc
.
中设置一个别名
alias p='env PYTHONPATH=/path/to/my_dir:$PYTHONPATH python'
以便仅在您使用 p
别名启动 python 时设置它。
还有一个环境变量 PYTHONSTARTUP
,您可以将其指向一个脚本,该脚本会在您启动时运行 python,尽管在此示例中未使用。
所以我这样使用traceback.format_exc()
:
try:
# Some code
except:
traceback_msg = '%s' % traceback.format_exc()
print(traceback_msg)
# Doing some stuff with it
在我的代码中经常将它输出到一个额外的 file/stream 并且通过编写代码我厌倦了继续输入它。有没有一种简单的方法来定义一个全局的 shortcut/ExceptionHandler 来保持关心并且很容易从各个地方调用?
您可以使用目录 PYTHONPATH
中的模块,该模块以短名称导入(并且它本身也有一个短名称)。
在您的设置脚本中设置环境变量 PYTHONPATH
以指向一个目录,例如在 .bashrc
在 Linux 中,放
export PYTHONPATH=/path/to/my_dir:$PYTHONPATH
(如果任何值已经存在,您可能想要进行测试,如果不存在,请在此处取消冒号,但这并不重要。)
并创建 /path/to/my_dir/tb.py
包含
from traceback import format_exec as fe
然后你可以进行交互,例如:
>>> import tb
>>> try:
... a = 1 / 0
... except:
... msg = tb.fe()
... print(">>>", msg)
给予
>>> Traceback (most recent call last):
File "<stdin>", line 2, in <module>
ZeroDivisionError: division by zero
请记住,尽管您的 tb.py
可能会与您尝试使用的另一个也称为 tb.py
的模块发生冲突。也许为了安全起见,不要一直设置 PYTHONPATH
,但是之后(再次以 Linux 为例),在您的 .bashrc
.
alias p='env PYTHONPATH=/path/to/my_dir:$PYTHONPATH python'
以便仅在您使用 p
别名启动 python 时设置它。
还有一个环境变量 PYTHONSTARTUP
,您可以将其指向一个脚本,该脚本会在您启动时运行 python,尽管在此示例中未使用。