日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python click 函数

發布時間:2023/12/18 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python click 函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Click模塊

click模塊是Flask的作者開發的一個第三方模塊,用于快速創建命令行。它的作用與Python標準庫的argparse相同,但是,使用起來更簡單。

click是一個第三方庫,因此使用起來需要先行安裝

安裝click模塊

使用pip命令即可完成模塊的安裝

1

pip install click

基本使用

Click對argparse的主要改在在于易用性,使用click模塊主要分為兩個步驟:

  • 使用@click.command() 裝飾一個函數,使之成為命令行接口
  • 使用@click.option() 等裝飾函數,為其添加命令行選項
  • 下列為click官方提供的例子:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    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):

    ????"""Simple program that greets NAME for a total of COUNT times."""??# 會當作help信息進行輸出

    ????for?x?in?range(count):

    ????????click.echo('Hello %s!'?%?name)

    ?

    if?__name__?==?'__main__':

    ????hello()

    在上面的例子中,函數hello接受兩個參數,分別是count和name,他們的取值從命令行中獲取,這里我們使用了click模塊中的command、option、echo,他們的作用如下:

    • command:使函數hello成為命令行接口
    • option:增加命令行選項
    • echo:輸出結果,使用echo進行輸出是為了更好的兼容性,因為python 2中的print是個語句,python 3中的print 是一個函數

    運行上面的腳本,可以通過命令指定--name,--count的值,由于我們在option中指定了prompt選項,那么如果我們執行腳本沒有傳遞name這個參數時,Click會提示我們在交互模式下輸入

    PS:與argparse模塊一樣,click也會為我們自動生成提示信息

    1

    2

    3

    4

    5

    6

    7

    8

    9

    lidaxindeMacBook-Pro:hello DahlHin$ python3 click模塊.py?--help

    Usage: click模塊.py [OPTIONS]

    ?

    ??Simple program that greets NAME?for?a total of COUNT times.

    ?

    Options:

    ??--count INTEGER? Number of greetings.

    ??--name TEXT????? The person to greet.

    ??--help???????????Show this message?and?exit.

    其他參數

    option最基本的用法就是通過指定命令行選項的名稱,從命令行讀取參數值,再將其傳遞給函數。option常用的參數含義:

    • default: 設置命令行參數的默認值
    • help:參數說明
    • type:參數類型,可以是string、int、float等
    • prompt:當在命令行中沒有輸入相應的參數時,會更具prompt提示用戶輸入
    • nargs:指定命令行參數接受的值的個數
    • required:是否為必填參數

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    import?click

    ?

    @click.command()

    @click.option('--pos',nargs=2,type=float)

    ?

    def?getfloat(pos):

    ????click.echo('%s / %s'?%?pos )

    ?

    if?__name__?==?'__main__':

    ????getfloat()

    注意:option中定義的參數名稱,那么就需要用同名的變量進行接受。

    更多參數請參考:?http://click.pocoo.org/5/options/#choice-opts?

    擴展用法

    場景一:我們限定用戶輸入的值,那么就需要使用Click模塊中的Choice函數,Choice的參數是一個列表,該列表中列出所有可能的值。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    import?click

    ?

    @click.command()

    @click.option('-c',required=True,type=click.Choice(['start','stop']))???# 限定-c的值為start,或者stop,required表示是否為必填參數

    def?getcommand(c):

    ????click.echo('command is %s'?%?c )

    ?

    if?__name__?==?'__main__':

    ????getcommand()

    場景二:應用程序從命令行讀取密碼。 

    使用標準庫中的argparse模塊只能像輸入普通參數一樣輸入密碼。這種方式存在一定安全隱患,例如輸入的密碼會保存在history中,查看命令歷史列表就能獲取密碼

    在Click中,這個問題就能完美的解決,只需要是這prompt為True,那么我們就能交互式輸入密碼,設置hide_input為True,就能隱藏密碼,設置confirmation_prompt為True,就可以進行密碼的兩次驗證,使用起來非常便捷。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    import?click

    ?

    @click.command()

    @click.option('-p',prompt='Your Password',hide_input=True,confirmation_prompt=True)

    ?

    def?getpassword(p):

    ????click.echo('Your Password is : %s'?%?p)

    ?

    if?__name__?==?'__main__':

    ????getpassword()

      

    點擊鏈接了解更多。

    參考:https://www.cnblogs.com/dachenzi/p/7995539.html

    總結

    以上是生活随笔為你收集整理的python click 函数的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。