我們知道,把通過命令行執(zhí)行python腳本很簡單汞扎,直接執(zhí)行python?+文件路徑+文件名就可以了
如果想在命令行執(zhí)行py腳本的時候?qū)ython腳本傳參數(shù)跷跪,應該如何完成?
這里使用的環(huán)境是在windows系統(tǒng)下麸俘,Python版本3.6.5
?場景1:要求你給一個腳本傳參辩稽,參數(shù)是要執(zhí)行的年份數(shù)據(jù),建立一個簡單的test.py
執(zhí)行从媚,查看結果
可以看到逞泄,按照腳本已經(jīng)成功輸出了我們傳入的參數(shù),如果是多個參數(shù)呢?我們修改腳本
可以看到喷众,多個參數(shù)各谚,在輸入的時候以空格隔開即可,在腳本中到千,以sys.argv[1:]進行設置
sys.argv在腳本中昌渤,是一個list,sys.argv[0]是腳本名憔四,sys.argv[1]是參數(shù)1愈涩,sys.argv[2]是參數(shù)2
len(sys.argv)可以查看參數(shù)個數(shù)
場景2:要求你給一個腳本傳參,參數(shù)是要執(zhí)行的年份數(shù)據(jù)加矛,如果不輸入?yún)?shù)履婉,則默認為本年年份,打開剛才的test.py
我們使用一個if語句斟览,檢測是否有參數(shù)傳入毁腿,若有,則輸出參數(shù)苛茂,若無已烤,則輸出使用datetime獲取的當前年份
執(zhí)行,查看結果
可以使用sys.exit()關閉sys
此外妓羊,getopt模塊是專門處理命令行參數(shù)的模塊胯究,用于獲取命令行選項和參數(shù),也就是sys.argv躁绸。命令行選項使得程序的參數(shù)更加靈活裕循。支持短選項模式(-)和長選項模式(--)。
該模塊提供了兩個方法及一個異常處理來解析命令行參數(shù)净刮。
getopt.getopt 方法用于解析命令行參數(shù)列表剥哑,語法格式如下:
getopt.getopt(args, options[, long_options])
方法參數(shù)說明:
args: 要解析的命令行參數(shù)列表。
options: 以列表的格式定義淹父,options后的冒號(:)表示該選項必須有附加的參數(shù)株婴,不帶冒號表示該選項不附加參數(shù)。
long_options: 以字符串的格式定義暑认,long_options?后的等號(=)表示如果設置該選項困介,必須有附加的參數(shù),否則就不附加參數(shù)蘸际。
該方法返回值由兩個元素組成: 第一個是?(option,
value)?元組的列表座哩。 第二個是參數(shù)列表,包含那些沒有'-'或'–'的參數(shù)捡鱼。
以上getopt模塊的解釋來源于https://blog.csdn.net/bloodsuckerm/article/details/79205703
場景3:我們需要py腳本處理一個文件八回,且將處理結果傳到另一個文件,使用-i和-o來區(qū)分傳入?yún)?shù)的類型
執(zhí)行