日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python?添加命令行參數步驟_python

作者:盼小輝丶 ? 更新時間: 2022-09-30 編程語言

前言

許多任務程序如果為其構造為一個命令行界面,就可以通過接受不同的參數來改變它的工作方式。例如,在爬蟲程序中,不同?URL?通常可以作為命令行參數傳遞給任務程序,從而可以爬取不同網頁中的數據。在?Python?標準庫中包含一個強大的?argparse?模塊,可以輕松創建豐富的命令行參數解析。

添加命令行參數的一般步驟

在程序腳本中,?argparse?的基本使用方式可以分三個步驟顯示:

  • 定義腳本要接受的參數,生成新的參數解析器
  • 調用定義的解析器,返回一個包含所有結果參數的對象
  • 使用帶有參數的命令調用腳本,使得定義的參數行為生效

一般而言,使用命令行參數的腳本遵循以下結構:

導入相關庫
定義函數
定義參數解析器
對參數進行操作
使用參數調用函數,以執行不同操作

其中,一般使用?main?函數來顯式的聲明代碼的執行入口,簡單情況下,我們可以直接使用命令行傳入的參數而無需進行復雜處理。

命令行參數示例

接下來,我們通過一個示例來了解如何添加并使用命令行參數。首先創建一個腳本?argparse_example.py,該腳本接受單個整數作為位置參數,并打印執行次數的?“Hello world.”。腳本代碼如下,我們遵循上述結構,其中定義的?main?僅僅執行打印功能:

import argparse

def main(num):
????print('Hello world.\n' * num)

if __name__ == '__main__':
????parse = argparse.ArgumentParser()
????parse.add_argument('number', type=int, help='A number')
????args = parse.parse_args()

????main(args.number)

在腳本中,參數通過?add_arguments?添加到解析器。定義了所有參數之后,調用?parse_args()?將返回一個包含參數解析結果的對象,如果出現錯誤則退出執行。

調用腳本并檢查參數的使用方式,不帶參數調用腳本時會自動顯示幫助信息,使用參數?-h?可以顯示擴展幫助信息:

$ python argparse_example.py
usage: argparse_example.py [-h] number
argparse_example.py: error: the following arguments are required: number
$ python argparse_example.py -h
usage: argparse_example.py [-h] number

positional arguments:
??number ?????A number

optional arguments:
??-h, --help ?show this help message and exit

使用額外參數調用腳本,可以按程序預期執行腳本:

$ python argparse_example.py 3
Hello world.
Hello world.
Hello world.

$ python argparse_example.py three
usage: argparse_example.py [-h] number
argparse_example.py: error: argument number: invalid int value: 'three'

更改腳本,添加可選參數用于接受所需打印的字符串,且默認值為 “Hello world”,編寫argparse_example_2.py?腳本如下所示:

import argparse
def main(string, num):
????print(string * num)
if __name__ == '__main__':
????parser = argparse.ArgumentParser()
????parser.add_argument('num', type=int, help='A number')
????parser.add_argument('-s', type=str, help='String to print', default='Hello world.\n')
????args = parser.parse_args()

????main(args.s, args.num)

再次執行腳本,可以看到幫助已經更新,使用?-s?選項可以打印不同的字符串:

$ python argparse_example_2.py -h
usage: argparse_example_2.py [-h] [-s S] num

positional arguments:
??num ????????A number

optional arguments:
??-h, --help ?show this help message and exit
??-s S ???????String to print
$ python argparse_example_2.py 3Hello world.
Hello world.
Hello world.

$ python argparse_example_2.py 3 -s 'I love movie'
I love movieI love movieI love movie

在實際場景中,我們應當為每個參數都添加一個幫助描述信息,參數可以分為位置參數和可選參數,它們的使用方式具有較大差別:

  • 如果參數以?-?開頭,則將其視為可選參數,例如腳本中的?-s?參數。否則,該參數為位置參數,如腳本中的數字參數
  • 為了清楚起見,應當始終為可選參數定義默認值。如果不顯式的定義默認值,則默認為?None,但這可能會令使用者困惑
  • 同時,在添加命令行參數時應當始終利用?add_agrment()?方法的?help?參數添加帶有參數描述的幫助信息,這在調用腳本時即為關鍵,能夠幫助使用者了解每個命令行參數的含義

原文鏈接:https://juejin.cn/post/7128037718612770824

欄目分類
最近更新