今天看到乙個同事寫的指令碼,指令碼中用了argparse模組。這個模組之前我沒有使用過,所以需要系統的學習一下。
argparse簡介:
官網文件:
步驟:
import argparseparser =argparse.argumentparser()
parser.add_argument("square", help="請輸入乙個數字", type=int
)parser.add_argument("input_str", help="請輸入乙個字母", type=str)
args =parser.parse_args()
print(args.square ** 2)
print(args.input_str)
把上面的**儲存到test_argparse.py檔案,
1)命令列執行時,不新增引數:在終端執行python3 test_argparse.py ,執行結果如下:
$python3 test_argparse.pyusage: test_argparse.py [-h] square input_str
test_argparse.py: error: the following arguments are required: square, input_str
2)命令列執行時加上-h ,檢視幫助:執行python3 test_argparse.py -h,執行結果如下:
$ python3 test_argparse.py -husage: test_argparse.py [-h] square input_str
positional arguments:
square 請輸入乙個數字
input_str 請輸入乙個字母
optional arguments:
-h, --help show this help message and exit
$python3 test_argparse.py 10 'hello world!
'100hello world!
4)如果輸入的格式不正確,會提示型別不對,例如第1個引數輸入乙個字串,執行結果如下:
$ python3 test_argparse.py 'abcd
' 11usage: test_argparse.py [-h] square input_str
test_argparse.py: error: argument square: invalid int value:
'abcd
'
上面的例子,其實就展示了定位引數的使用。不在舉例了
現在看下可選引數的用法,所謂可選引數,也就是命令列引數是可選的,廢話少說,看下面例子:
parser.add_argument("--square
", help="
display a square of a given number
", type=int)
parser.add_argument(
"--cubic
", help="
display a cubic of a given number
", type=int)
之前已經提到了用type引數就可以指定輸入的引數型別。而這個type型別還可以表示檔案操作的型別從而直接進行檔案的讀寫操作。
parser.add_argument('file
', type=argparser.filetype('
r')) #
讀取檔案 args = parser.parse_args()
for line in
args.file:
print line.strip()
一般情況下會設定一些預設引數從而不需要每次輸入某些不需要變動的引數,利用default引數即可實現。
parser.add_argument('filename
', default='
text.txt
')
python常用模組(一)
os 模組提供對作業系統進行呼叫的介面 print list os.walk mnt topdown false 輸出 mnt dira dirb file1 file2 mnt dira file test a mnt dirb file test b top 是你所要遍歷的目錄的位址,返回的是乙...
Python常用模組(一)Numpy
arr np.array list,tuple 一維二維都可建立 np.zeros 3,3 建立全零陣列 np.ones 3,3 建立全一陣列 np.empty 建立未初始化陣列 np.arange a,b,c a,b c為步長可有可無,沒有預設為1 np.linspace 0,10,5 建立乙個等...
python 常用模組
1.告訴直譯器 找模組 import sysunix要絕度路徑 只有第一次匯入執行。name main 2.當做包,必須包含乙個命名為 init py的檔案 模組 3.dir看模組裡有什麼 下劃線開始,不是給模組外部用的。過濾 import copy n for n in dir copy if n...