簡體   English   中英

為`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

經常在我的代碼中到 output 它到一個額外的文件/流,通過編寫代碼我厭倦了繼續輸入它。 有沒有一種簡單的方法來定義一個全局快捷方式/異常處理程序,它可以保持關注並且易於從各個地方調用?

您可以使用目錄PYTHONPATH中的模塊,該模塊以縮短的名稱(並且本身具有短名稱)導入。

在你的設置腳本中設置環境變量PYTHONPATH指向一個目錄,例如在 Linux 的.bashrc中,把

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 時運行,盡管在此示例中未使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM