亚洲国产欧美一区二区三区f,亚洲A∨精品永久无码青草网,亚洲 暴爽 av人人爽日日碰,亚洲AV永久无码精心天堂久久_无码

系統城裝機大師 - 唯一官網:www.outletmksalestore.com!

當前位置:首頁 > 腳本中心 > python > 詳細頁面

python獲取命令行參數實例方法講解

時間:2020-11-02來源:www.outletmksalestore.com作者:電腦系統城

Python 在命令行解析方面給出了類似的幾個選擇:自己解析, 自給自足(batteries-included)的方式,以及大量的第三方方式。

自己解析

你可以從 sys 模塊中獲取程序的參數。

?
1
2
3
4
5
import sys
  
if __name__ == '__main__':
   for value in sys.argv:
       print(value)

自給自足

在 Python 標準庫中已經有幾個參數解析模塊的實現: getopt 、 optparse ,以及最近的 argparse 。argparse 允許程序員為用戶提供一致的、有幫助的用戶體驗,但就像它的 GNU 前輩一樣,它需要程序員做大量的工作和“ 模板代碼 ”才能使它“奏效”。

?
1
2
3
4
5
6
7
8
9
10
from argparse import ArgumentParser
  
if __name__ == "__main__":
  
   argparser = ArgumentParser(description='My Cool Program')
   argparser.add_argument("--foo""-f"help="A user supplied foo")
   argparser.add_argument("--bar""-b"help="A user supplied bar")
    
   results = argparser.parse_args()
   print(results.foo, results.bar)

CLI 的現代方法

Click 框架使用 裝飾器 的方式來構建命令行解析。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import click
  
@click.command()
@click.option("-f""--foo", default="foo"help="User supplied foo.")
@click.option("-b""--bar", default="bar"help="User supplied bar.")
def echo(foo, bar):
    """My Cool Program
    
    It does stuff. Here is the documentation for it.
    """
    print(foo, bar)
    
if __name__ == "__main__":
echo()

在 Click 接口中添加參數就像在堆棧中添加另一個裝飾符并將新的參數添加到函數定義中一樣簡單。

知識拓展:

Typer 建立在 Click 之上,是一個更新的 CLI 框架,它結合了 Click 的功能和現代 Python 類型提示 。使用 Click 的缺點之一是必須在函數中添加一堆裝飾符。CLI 參數必須在兩個地方指定:裝飾符和函數參數列表。Typer 免去你造輪子 去寫 CLI 規范,讓代碼更容易閱讀和維護。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import typer
  
cli = typer.Typer()
  
@cli.command()
def echo(foo: str = "foo", bar: str = "bar"):
    """My Cool Program
    
    It does stuff. Here is the documentation for it.
    """
    print(foo, bar)
    
if __name__ == "__main__":
cli()

 

到此這篇關于python獲取命令行參數實例方法講解的文章就介紹到這了

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載

亚洲国产欧美一区二区三区f,亚洲A∨精品永久无码青草网,亚洲 暴爽 av人人爽日日碰,亚洲AV永久无码精心天堂久久_无码 日本少妇又色又爽又高潮