python獲取命令列引數例項方法講解
阿新 • • 發佈:2020-11-03
Python 在命令列解析方面給出了類似的幾個選擇:自己解析,自給自足(batteries-included)的方式,以及大量的第三方方式。
自己解析
你可以從 sys 模組中獲取程式的引數。
importsys if__name__=='__main__': forvalueinsys.argv: print(value)
自給自足
在 Python 標準庫中已經有幾個引數解析模組的實現: getopt 、 optparse ,以及最近的 argparse 。argparse 允許程式設計師為使用者提供一致的、有幫助的使用者體驗,但就像它的 GNU 前輩一樣,它需要程式設計師做大量的工作和“ 模板程式碼 ”才能使它“奏效”。
fromargparseimportArgumentParser if__name__=="__main__": argparser=ArgumentParser(description='MyCoolProgram') argparser.add_argument("--foo","-f",help="Ausersuppliedfoo") argparser.add_argument("--bar","-b",help="Ausersuppliedbar") results=argparser.parse_args() print(results.foo,results.bar)
CLI 的現代方法
Click 框架使用 裝飾器 的方式來構建命令列解析。
importclick @click.command() @click.option("-f","--foo",default="foo",help="Usersuppliedfoo.") @click.option("-b","--bar",default="bar",help="Usersuppliedbar.") defecho(foo,bar): """MyCoolProgram Itdoesstuff.Hereisthedocumentationforit. """ print(foo,bar) if__name__=="__main__": echo()
在 Click 介面中新增引數就像在堆疊中新增另一個裝飾符並將新的引數新增到函式定義中一樣簡單。
知識拓展:
Typer 建立在 Click 之上,是一個更新的 CLI 框架,它結合了 Click 的功能和現代 Python 型別提示 。使用 Click 的缺點之一是必須在函式中新增一堆裝飾符。CLI 引數必須在兩個地方指定:裝飾符和函式引數列表。Typer 免去你造輪子 去寫 CLI 規範,讓程式碼更容易閱讀和維護。
importtyper cli=typer.Typer() @cli.command() defecho(foo:str="foo",bar:str="bar"): """MyCoolProgram Itdoesstuff.Hereisthedocumentationforit. """ print(foo,bar) if__name__=="__main__": cli()
到此這篇關於python獲取命令列引數例項方法講解的文章就介紹到這了,更多相關python獲取命令列引數實現方法內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!