1. 程式人生 > >python sys.argv,以及sys.exit(1)怎麼用?

python sys.argv,以及sys.exit(1)怎麼用?

1、sys.argv 是獲取執行python檔案的時候命令列引數,且以list形式儲存引數 2、sys.argv[0] 代表當前module的名字 下面的程式碼檔案是a.py,當我不用IDE工具,只用命令列視窗執行的時候,進入檔案所在目錄,輸入:python a.py 輸出結果如下

import sys a=sys.argv b=len(sys.argv) print(a) print(b)

輸出: [‘a.py’]

還是上面的程式碼,當我執行時候輸入:python a.py zhang 輸出如下

[‘a.py’, ‘zhang’] 2

繼續執行時候輸入:python a.py zhang kang 輸出如下

[‘a.py’, ‘zhang’, ‘kang’] 3

想必不用我說大家都能看明白了。現在分別獲取輸入的引數值: python a.py zhang kang

#encoding=utf-8 import sys a=sys.argv[0] b=sys.argv[1] c=sys.argv[2] print(“filename:”,a) print(“param1:”,b) print(“param2:”,c)

輸出: (‘filename:’, ‘a.py’) (‘param1:’, ‘zhang’) (‘param2:’, ‘kang’)

。。。。。。。。。。。。。。。

os._exit()會直接將python程式終止,之後的所有程式碼都不會繼續執行。

sys.exit()會引發一個異常:SystemExit,如果這個異常沒有被捕獲,那麼python直譯器將會退出。如果有捕獲此異常的程式碼,那麼這些程式碼還是會執行。捕獲這個異常可以做一些額外的清理工作。0為正常退出,其他數值(1-127)為不正常,可拋異常事件供捕獲。 舉例說明

1 import os

3 try: 4 os._exit(0) 5 except: 6 print ‘die.’ 此處不會打出”going to die”

import sys

try: sys.exit(0) except: print ‘die’ finally: print ‘cleanup’ 輸出:

die cleanup 區別

綜上,sys.exit()的退出比較優雅,呼叫後會引發SystemExit異常,可以捕獲此異常做清理工作。os._exit()直接將python直譯器退出,餘下的語句不會執行。