具體文件請檢視:
print
(getopt.__doc__)
這個模組一共有兩個函式,兩個屬性:
函式:
屬性:
我們主要經常使用getopt這個函式:
getopt.getopt(args, shortopts, longopts=
)args指的是當前指令碼接收的引數,它是乙個列表,可以通過sys.ar**[1:
]獲得shortopts 是短引數,類似於:python test.py -h # 輸出幫助資訊
longopts 是長引數,類似於:python test.py -
help
# 輸出幫助資訊
這個函式返回乙個元組,裡面有兩個元素,第乙個是options的鍵值對列表,即輸入的選項;第二個是args的列表,即輸入的引數。具體說明請參看官方文件。
opts 為分析出的格式資訊。args 為不屬於格式資訊的剩餘的命令列引數。
import getopt
import sys
ret = getopt.getopt(sys.ar**[1:
],'-h',[
'help'])
print
(ret)
結果如下:
λ python test.py -h([
('-h',''
)],[
])λ python dev1.py -
-help([
('--help',''
)],[
])λ python dev1.py -
-help abc123([
('--help',''
)],[
'abc123'
])
可以看到已經接收了引數。並且做了處理,為什麼要傳入sys.ar**[1:]?
因為sys.ar**裡的ar**[0]是當前指令碼的檔名,不需要它去參與。這個是引數+引數值的例子:
#!/usr/bin/env python
import getopt
import sys
opts,args = getopt.getopt(sys.ar**[1:
],'hf:v',[
'help'
,'filename='
,'version'])
for opt_name,opt_value in opts:
if opt_name in
('-h'
,'--help'):
print
("[*] help info"
)if opt_name in
('-v'
,'--version'):
print
("[*] version is 0.01 "
)if opt_name in
('-f'
,'--filename'):
filename = opt_value
print
("[*] filename is "
,filename)
# do something
exit(
)
執行測試結果如下:
λ python dev1.py -
-file
=test.txt[*
] filename is test.txt
λ python dev1.py -
-file=[
*] filename is
λ python dev1.py -f test.txt[*
] filename is test.txt
λ python dev1.py -hv[*
] help info[*
] version is
0.01
來詳細解釋一下這幾行**:
首先從短引數名開始。
定義了'hf:v'
,f後的:
代表了f引數是有值的,是乙個引數名+引數值的引數。
長引數名的方式和短引數差不多,唯一的區別就是長引數如果要接收值,那必須得在後面加上乙個=
。
Python3 命令列引數
python 提供了getopt模組來獲取命令列引數。python test.py arg1 arg2 arg3python 中也可以所用sys的sys.argv來獲取命令列引數 注 sys.argv 0 表示指令碼名。例項 test.py 檔案 如下 usr bin python3 import ...
Python3 怎麼使用python命令列引數
python3 test.py arg1 arg2 arg3getopt模組是專門處理命令列引數的模組,用於獲取命令列選項和引數,也就是sys.ar 命令列選項使得程式的引數更加靈活。支援短選項模式 和長選項模式 該模組提供了兩個方法及乙個異常處理來解析命令列引數。getopt.getopt 方法 ...
python 命令列引數
本篇將介紹python中sys,getopt模組處理命令列引數 如果想對python指令碼傳引數,python中對應的argc,argv c語言的命令列引數 是什麼呢?需要模組 sys 引數個數 len sys.argv 指令碼名 sys.argv 0 引數1 sys.argv 1 引數2 sys....