python獲得命令行輸入的參數的兩種方式
外部直接執(zhí)行python文件時,我們有時需要獲得命令行的參數
獲得命令行參數的兩種方式
1、通過sys.argv
sys.argv:獲得一個參數列表,第一個值為文件名本身,通過sys.argv[1]獲得第文件名后的第一個參數 ,多個參數使用空格隔開
測試代碼:
import sys print(sys.argv) print(len(sys.argv)) print(len(sys.argv[1]))
測試數據:
python3 test.py 第一個參數 第二個參數
執(zhí)行結果:
['test.py', '第一個參數', '第二個參數']
3
5
[]
['第一個參數', '第二個參數']
2、通過getopt()獲得參數值
如果命令行需要通過linux那中指定參數名的方法運行,可以使用getopt()來獲得參數內容
命令【getopt.getopt(參數列表,"短選項參數",[長選項參數])】
參數有兩種維度區(qū)分:短選項,長選項;帶參數值(開關)和不帶參數值
短選項參數(命令行使用-參數名):由1個字母組成,如果字母后面跟冒號:表示這個參數需要有參數值,否則表示不輸入參數值
例如:io:
表示入參要輸入-i -o=xxx
長選項參數(命令行使用--參數名):由[參數名=]表示,有值的參數一定要寫=,否則會拋錯
例如:["help","input=","output="]
表示入參要輸入 --help --input=xxx --output=xxx
測試代碼:
import getopt import sys opts,args=getopt.getopt(sys.argv[1:],"i:ho:",["help","input=","output="]) print(opts) print(args) for opts,arg in opts: print(opts) if opts=="-h" or opts=="--help": print("我只是一個說明文檔") elif opts=="-i" or opts=="--input": print("我只是輸入,輸入內容如下:") print(arg) elif opts=="-o" or opts=="--output": print("我只是輸出,輸出內容如下:") print(arg)
測試數據:
python3 test.py -h -o=輸出 --input=輸入 最后一個參數
測試結果:
[('-h', ''), ('-o', '=輸出'), ('--input', '輸入')]
['最后一個參數']
-h
我只是一個說明文檔
-o
我只是輸出,輸出內容如下:
=輸出
--input
我只是輸入,輸入內容如下:
輸入
說明:使用getopt()需要注意一下,不能把未定義的參數放到短選項和長選項的前面,否則-h --help這種不能讀取到參數值(源碼中不是很嚴謹,遇到這種情況直接就break了),放到后面可以,也能通過args獲取到
getopt()中第一個參數寫sys.argv[1:]的緣故是命令行第一個參數為文件名本身,這里沒有意義
總結
到此這篇關于python獲得命令行輸入的參數的兩種方式的文章就介紹到這了,更多相關python命令行參數內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
pyspark.sql.DataFrame與pandas.DataFrame之間的相互轉換實例
今天小編就為大家分享一篇pyspark.sql.DataFrame與pandas.DataFrame之間的相互轉換實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08python實現(xiàn)連續(xù)變量最優(yōu)分箱詳解--CART算法
今天小編就為大家分享一篇python實現(xiàn)連續(xù)變量最優(yōu)分箱詳解--CART算法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11