ホームページ  >  記事  >  バックエンド開発  >  Python コマンドライン解析ツール Argparse の詳細な紹介

Python コマンドライン解析ツール Argparse の詳細な紹介

高洛峰
高洛峰オリジナル
2017-03-04 16:17:201759ブラウズ

最近、私は pathon のコマンド ライン解析ツール argparse を勉強しています。これは、コマンド ライン プログラムを作成するための Python 標準ライブラリで推奨されているツールです。

いつも UI プログラムをやっていたのですが、今日はコマンドライン プログラムを試してみました。特に面倒なインターフェイスの問題の勉強に多くの時間を費やす必要がなくなりました。

現在、Python を使用してコマンド ラインを実装し、コア コンピューティング モジュールは C を使用して独自の拡張ライブラリを作成でき、その効果は非常に優れています。

argparseを学び、公式ドキュメントでチュートリアルの記事を見つけて簡単に翻訳しました。

http://docs.python.org/2/howto/argparse.html#id1

Argparse チュートリアル
このチュートリアルでは、Python 標準ライブラリで推奨されているコマンド ライン パラメーター解析モジュールである Argparse の使用方法を簡単に紹介します。

1. 基本概念

このチュートリアルでは、一般的な 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.

上記の 4 つのコマンドから、次の基本概念を理解できます:

1) ls コマンドはパラメータなしで実行することもできます。デフォルトでは、現在のディレクトリ内のすべてのファイルの内容が出力されます。 。
2) より多くのコンテンツを表示したい場合は、より多くのパラメータを与える必要があります。この場合、別のディレクトリ pypy を表示します。ここでは、プログラムがコマンド ライン内の引数の位置に基づいて何を行うかを決定する必要があるため、この名前が付けられた共通の位置引数を指定しました。この概念はコマンド cp に近いもので、cp src dest はコピーするファイルを表し、dest はファイルのコピー先を表します。
3) 次に、プログラムの動作を変更したいと思います。この例では、ファイル名だけでなくファイルの西方向の情報を表示したいと考えています。パラメータ -l は既知のオプションの引数 (4) で、最後の文はヘルプを表示するドキュメントの 1 つです。 , 使ったことのないコマンドが出てきたときは、それを使って使い方を学ぶことができます。

2. 基本的な理解

基本的なプログラムから始めます(何も行いません)

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

結果分析:

1)、そうでない場合はこのプログラムを実行します引数を指定しても結果は生成されません。

2) 2 番目の名前付けは、argparse を使用する利点を示していますが、適切なヘルプ メッセージが表示されます。
3) --help パラメータを手動で設定しなくても、適切なヘルプ情報を取得できます。ただし、他のパラメータ (foo など) が指定された場合は、エラーが生成されます。

3. 位置パラメータ

まず、例を示します:

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

結果分析:

今回は、 to を使用して add_argument() メソッドを追加しました。プログラムが受け入れられるコマンドラインパラメータを設定します。

プログラムを実行するには、パラメーターを設定する必要があります。
parse_args() メソッドは、実際にはコマンド ライン引数からデータを返します。上記の例では、それは echo です。
この「魔法」のようなプロセスは、argparse によって自動的に行われます。
自動生成されたヘルプ情報は美しく表示されていますが、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

これに基づいて、もう少し変更を加えてみましょう: (入力パラメータの二乗の二乗を計算します)

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 <module>
  print args.square**2
TypeError: unsupported operand type(s) for ** or pow(): &#39;str&#39; and &#39;int&#39;

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: &#39;four&#39;

これで、プログラムはスムーズに実行され、いくつかの誤った入力が処理されます。

上記は、Python コマンド ライン解析ツール Argparse の使い方に関する簡単なチュートリアルです。皆さんのお役に立てれば幸いです。

Python コマンド ライン解析ツール Argparse の詳細な紹介と関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。