python的argpare和click模組詳解
一、argparse模組
1、模組說明12
2、模組常用的引數12
3456
78910
3、使用方法12
3456
78910
1112
1314
1516
1718
1920
2122
2324
2526
import argparse
def _argparse():
parseobj = argparse.argumentparser(description="this is script help")
# 引數說明:
# name/flag:引數的名字
# action:遇到引數的動作,預設值是store
# nargs:引數的個數,可以是具體的數字,或者是+或者是*,*表示0個或者多個引數,+號表示1個或者多個引數
# default:不指定引數時的預設值
# type:# 引數的型別
# choice:引數允許的值
# required:可選引數是否可以省略
# help:引數的幫助資訊
# dest:解析後引數的名稱
parseobj.add_argument("--host",action='store',dest='host',required=true,default="127",help="this is a host ip address",type=int)
parseobj.add_argument("--p",'--passwd',action='store', dest='pwd', required=true, default="admin123.",help="this is a host password", type=str)
parseobj.add_argument("--v", '--version', action='version', version="%(prog)s 0.1")
return parseobj.parse_args()
ifname== '__main__':
res = _argparse()
print(res.pwd)
print(res.host)
4、最後我們測試一下這個模組
a、測試 -h選項,這裡-h和--help的效果是一樣的
b、測試--v選項和--version選項
c、測試一下輸入的正確的引數
二、click模組
1、模組介紹12
click模組的作者就是flask的作者,(armin ronacher)開發的乙個第三方的模組,用於快速建立命令列。他的作用用python標準庫中的argparse相同,但是
使用更加簡單,click相對於標準庫的argparse,就好比requests庫相當於標準庫的urllib庫,click是乙個第三的庫,因此在使用之前需要安裝
2、模組安裝
1e:python3scripts>pip3.6.exe install click
3、使用步驟
a、使用@click.command()裝飾乙個函式,使之成為命令列的介面
b、使用@click.option()等裝飾函式,為其新增命令列選項等
c、先看乙個官方的例子12
3456
78910
1112
1314
import click
@click.command()
@click.option('--count',default=1,help='number of greetings')
@click.option('--name',prompt='your name',help='the person to greet')
def hello(count,name):
for x in range(count):
click.echo("hello ".format(name = name))
ifname== '__main__':
hello()
其他的應該大家都可以看懂,這個prompt的作用是什麼呢,實際就是如果我們沒有為name傳引數,他就會給出乙個提示
下面這個例子是完整的傳參
4、常用引數12
3456
常用引數
default:設定命令列引數的預設值
help:引數說明
type:引數的型別,可以是string,int,float
prompt:當在命令列中沒有輸入相應的引數,會根據prompt提示使用者輸入
nargs:指定命令列引數接受的值的個數
a、測試一下nargs引數12
3456
@click.option('--post',nargs=2,help='number of post')
def hello(post):
print(post)
ifname== '__main__':
hello()
測試結果
b、測試click.choice選項12
3456
@click.option('--hash',type=click.choice(["md5","sha1"]),help='type of hash')
def hello(hash):
print(hash)
ifname== '__main__':
hello()
測試結果
c、如果使用命令列輸入密碼,則預設的情況是有很大的安全隱患的,因為輸入密碼的命令在history中,其他使用者就可以通過命令的歷史列表,拿到我們的密碼,click可以為我們解決這個問題12
3456
@click.option('--pwd',prompt=true,hide_input=true,help='passwd of user',confirmation_prompt=true)
def hello(pwd):
print(pwd)
ifname== '__main__':
hello()
123
prompt:要設定為true
hide_input:要設定為true
confirmation_prompt:會自動為我們進行密碼的二次驗證
測試結果如下
錯誤的輸入
正確的輸入
Python中的 and和or 和
如果a,b是數值變數,則 表示按位運算,and,or則依據是否非0來決定輸出 print 1 2 print 1 2 print 0 and 2 有false返回false,否則返回後乙個 print 1 and 2 print 1 or 2 2個都為true,返回第乙個 print 0 or 2 ...
python 包和模組 python的包和模組
再看一下os識別符號的型別及os指向的這個物件。print type os print type os.path print global os 收集全域性變數,檢視os物件資訊 輸出結果 上面結果顯示os和os.path是乙個module型別,這也是os可以使用import匯入的原因。只有modu...
關於python的 和
在python中的 和 除了分別表示乘法運算和冪運算外還有其它作用。在python中可能會經常看到類似於def function1 args,kwargs 的函式定義形式,或者看到function1 v1,v2 的函式呼叫形式,很多沒看到過的人可能會不知所以。下面分別說明 在函式定義時,表示可變位置...