一日一技:快速實現Python 命令行參數

一日一技:快速實現Python 命令行參數

一日一技:快速實現Python 命令行參數

攝影:產品經理
廚師:kingname
咱們有時候須要使用 Python 開發一些命令行工具,並在運行命令的時候指定一些參數,例如:html

python3 xxx.py --name kingname --salary 999999

對於簡單的,只有幾個參數的工具,咱們能夠使用 sys.argv來獲取。python

若是咱們還須要在參數裏面輸出幫助信息,而且同時兼顧兩種格式:ide

python3 xx.py --name=kingname --salary=999

python3 xxx.py --name kingname --salary=999

那麼使用 sys模塊就很差用了。此時咱們能夠使用 argparse。可是若是你閱讀它的官方文檔:https://docs.python.org/zh-cn/3/howto/argparse.html,你就會發現 argparse寫起來仍是有點麻煩。函數

那麼有沒有簡單的方法實現命令行參數呢?答案就是 fire這個庫。工具

首先咱們來安裝一下它:命令行

python3 -m pip install fire

而後咱們來實現一個簡單的支持命令行的程序:code

import fire

def intro(name, salary):
    print(f'個人名字是:{name}, 個人月薪是{salary}')

if __name__ == '__main__':
    fire.Fire(intro)

這段代碼支持三種調用方法,以下圖所示:
一日一技:快速實現Python 命令行參數htm

使用參數 python3 test_fire.py--help能夠看到自動生成的幫助信息:
一日一技:快速實現Python 命令行參數blog

若是漏掉了某些信息,那麼就會報錯:ip

一日一技:快速實現Python 命令行參數

那麼若是有些參數可要可不要怎麼辦呢?也很是簡單,給函數參數帶上默認值便可,例如:

import fire

def intro(name='產品經理', salary=88888):
    print(f'個人名字是:{name}, 個人月薪是{salary}')

if __name__ == '__main__':
    fire.Fire(intro)

運行效果以下圖所示:
一日一技:快速實現Python 命令行參數

使用 fire,讓你的命令行參數更容易。

相關文章
相關標籤/搜索