記錄一些python基本模組使用

2021-10-03 16:59:14 字數 2736 閱讀 9841

python中用於處理異常棧的模組是traceback模組,它提供了print_exception、format_exception等輸出異常棧等常用的工具函式。 

import sys

import traceback

def func(divisor, dividend):

return divisor / dividend

if __name__ == '__main__':

try: func(1, 0)

except exception as e:

print "print exc"

traceback.print_exc(file=sys.stdout)

輸出結果:

*************** restart: d:\now\test_python\test_traceback.py ***************

print exc

traceback (most recent call last):

file "d:\now\test_python\test_traceback.py", line 6, in

try: func(1, 0)

file "d:\now\test_python\test_traceback.py", line 4, in func

return divisor / dividend

zerodivisionerror: integer division or modulo by zero

traceback.print_exc()函式只是traceback.print_exception()函式的乙個簡寫形式,而它們獲取異常相關的資料都是通過sys.exc_info()函式得到的。

import sys

import traceback

def func(divisor, dividend):

return divisor / dividend

if __name__ == '__main__':

try: func(1, 0)

except exception as e:

print "print exception()"

exc_type,exc_value,exc_tb = sys.exc_info()

print "the exc type is:",exc_type

print "the exc value is:",exc_value

print "the exc tb is:",exc_tb

traceback.print_exception(exc_type,exc_value,exc_tb)

輸出結果:

*************** restart: d:\now\test_python\test_traceback.py ***************

print exception()

the exc type is:

the exc value is: integer division or modulo by zero

the exc tb is:

traceback (most recent call last):

file "d:\now\test_python\test_traceback.py", line 6, in

try: func(1, 0)

file "d:\now\test_python\test_traceback.py", line 4, in func

return divisor / dividend

zerodivisionerror: integer division or modulo by zero

sys.exc_info()返回的值是乙個元組,其中第乙個元素,exc_type是異常的物件型別,exc_value是異常的值,exc_tb是乙個traceback物件,物件中包含出錯的行數、位置等資料。然後通過print_exception函式對這些異常資料進行整理輸出。

traceback模組提供了extract_tb函式來更加詳細的解釋traceback物件所包含的資料:

import sys

import traceback

def func(divisor, dividend):

return divisor / dividend

if __name__ == '__main__':

try:

func(1, 0)

except:

_, _, exc_tb = sys.exc_info()

for filename, linenum, funcname, source in traceback.extract_tb(exc_tb):

print "%-23s:%s '%s' in %s()" % (filename, linenum, source, funcname)

輸出結果:

*************** restart: d:\now\test_python\test_traceback.py ***************

d:\now\test_python\test_traceback.py:7 'func(1, 0)' in ()

d:\now\test_python\test_traceback.py:4 'return divisor / dividend' in func()

linux一些基本操作記錄

編緝檔案 nano 查詢檔案 find iname 檔名 rpm的檔案用 rpm ivh rpm命令安裝,用man rpm可以得到幫助 tar.gz的檔案用 tar zxvf tar.gz命令解壓縮,這是乙個壓縮包,解壓到當前目錄下.force tar的檔案用 tar xvf tar命令解壓縮,這是...

一些python模組的安裝

開始接觸python程式設計,先前一直用的是標準庫,但平常還是要用到很多非標準庫的模組。下面記錄一下安裝一些模組的過程 目前用的是win7x64 beautifulsoup是一款優秀的html xml標籤解析工具,這裡有bs官方中文教程。安裝過程 用cmd切換到解壓檔案目錄 python setup...

python之路 一些常用模組

模組,用一砣 實現了某個功能的 集合。類似於函式式程式設計和面向過程程式設計,函式式程式設計則完成乙個功能,其他 用來呼叫即可,提供了 的重用性和 間的耦合。而對於乙個複雜的功能來,可能需要多個函式才能完成 函式又可以在不同的.py檔案中 n個 py 檔案組成的 集合就稱為模組。模組一般分為三種 i...