Python 命令列解析工具 Argparse介紹

2022-04-04 07:46:04 字數 3813 閱讀 1693

最近在研究pathon的命令列解析工具,argparse,它是python標準庫中推薦使用的編寫命令列程式的工具。

以前老是做ui程式,今天試了下命令列程式,感覺相當好,不用再花大把時間去研究介面問題,尤其是vc++中尤其繁瑣。

現在用python來實現命令列,核心計算模組可以用c自己寫擴充套件庫,效果挺好。

學習了argparse,在官方文件中找到一篇toturial,簡單翻譯了下。

這篇教程簡明地介紹了python標準庫推薦使用的命令列引數解析模組——argparse的使用。

基本概念

在這篇教程中我們通過乙個常見的ls命令來展示argparse的功能。

$ ls

cpython devguide prog.py pypy rm-unused-function.patch

$ ls pypy

ctypes_configure demo dotviewer include lib_pypy lib-python ...

$ ls -l

total 20

drwxr-xr-x 19 wena wena 4096 feb 18 18:51 cpython

drwxr-xr-x 4 wena wena 4096 feb 8 12:04 devguide

-rwxr-xr-x 1 wena wena 535 feb 19 00:05 prog.py

drwxr-xr-x 14 wena wena 4096 feb 7 00:59 pypy

-rw-r--r-- 1 wena wena 741 feb 18 01:01 rm-unused-function.patch

$ ls --help

usage: ls [option]... [file]...

list information about the files (the current directory by default).

sort entries alphabetically if none of -cftuvsux nor --sort is specified.

從以上的四個命令中,我們能夠了解以下幾個基本概念:

基本認識

我們從乙個基本的程式開始(它什麼也不做)

import argparse

parser = argparse.argumentparser()

parser.parse_args()

執行結果:

$ python prog.py

$ python prog.py --help

usage: prog.py [-h]

optional arguments:

-h, --help show this help message and exit

$ python prog.py --verbose

usage: prog.py [-h]

prog.py: error: unrecognized arguments: --verbose

$ python prog.py foo

usage: prog.py [-h]

prog.py: error: unrecognized arguments: foo

結果分析:

位置引數

首先,給乙個例子:

import argparse

parser = argparse.argumentparser()

parser.add_argument("echo")

args = parser.parse_args()

print args.echo

執行結果:

$ python prog.py

usage: prog.py [-h] echo

prog.py: error: the following arguments are required: echo

$ python prog.py --help

usage: prog.py [-h] echo

positional arguments:

echo

optional arguments:

-h, --help show this help message and exit

$ python prog.py foo

foo

結果分析:

儘管自動產生的幫助資訊展示地很美觀,但是我們仍然無法只根據echo這個引數知道它是做什麼的。所以,我們增加了一些東西,使得它變得更有用。

import argparse

parser = argparse.argumentparser()

parser.add_argument("echo", help="echo the string you use here")

args = parser.parse_args()

print args.echo

執行結果:

$ python prog.py -h

usage: prog.py [-h] echo

positional arguments:

echo echo the string you use here

optional arguments:

-h, --help show this help message and exit

在此基礎上,我們再多改變一點:(計算輸入引數square的平方)

import argparse

parser = argparse.argumentparser()

parser.add_argument("square", help="display a square of a given number")

args = parser.parse_args()

print args.square**2

下面是執行結果:

$ python prog.py 4

traceback (most recent call last):

file "prog.py", line 5, in print args.square**2

typeerror: unsupported operand type(s) for ** or pow(): 'str' and 'int'

這個程式並不能正確執行,因為argparse會將輸入當作字串處理,所以我們需要設定它的型別:(type=int)

import argparse

parser = argparse.argumentparser()

parser.add_argument("square", help="display a square of a given number",

type=int)

args = parser.parse_args()

print args.square**2

下面是執行結果:

$ python prog.py 4

16$ python prog.py four

usage: prog.py [-h] square

prog.py: error: argument square: invalid int value: 'four'

現在,這個程式能夠順利執行,而且能夠處理一些錯誤輸入。

from: 

python 命令列解析工具argparse的認識

一 介紹 argparse 是python 中用於解析命令列引數和選項的標準模組。簡單的形容就是你寫完python程式之後,在終端下 linux系統 可以用命令列直接呼叫執行,並且可以設定相應的引數等等。二 如何使用 說太多廢話無用,我們需要掌握的是如何使用,能看懂別人寫的 即可。太多的理論知識作用...

python命令列引數解析工具 argparse

在命令列中執行py檔案的時候 這在linux系統中尤為常見 是否可以像執行內部的函式那樣設定可變引數呢?這樣做可以避免進入py檔案再次編寫檔案的尷尬,同時也意味著減少bug的發生。argparse就是這樣可以在幫助在命令列中新增引數的工具,基本的使用方法如下 所示 coding utf 8 impo...

C 命令列解析工具

我將告訴大家兩個方法去獲取c 輸入的命令列引數。第乙個方法 林選臣大神寫的,他的方法很簡單。首先複製兩個類到專案 public class commandlineargumentparser public static commandlineargumentparser parse string a...