Python、コマンドラインから引数を受け入れる

Pythonは、コマンドラインからプログラムを呼び出すときに渡される引数を処理するいくつかの方法を提供します。

これまで、REPLから、またはを使用してプログラムを実行してきました。

python <filename>.py

次のように、追加の引数とオプションを渡すことができます。

python <filename>.py <argument1>
python <filename>.py <argument1> <argument2>

これらの引数を処理する基本的な方法は、sys標準ライブラリのモジュール。

で渡された引数を取得できますsys.argvリスト:

import sys
print(len(sys.argv))
print(sys.argv)

ザ・sys.argvリストには、最初の項目として、実行されたファイルの名前が含まれています。['main.py']

これは簡単な方法ですが、多くの作業を行う必要があります。引数を検証し、その型が正しいことを確認する必要があります。ユーザーがプログラムを正しく使用していない場合は、ユーザーにフィードバックを出力する必要があります。

Pythonは、標準ライブラリに次のような別のパッケージを提供しています。argparse

最初にインポートしますargparseそしてあなたは電話しますargparse.ArgumentParser()、プログラムの説明を渡します。

import argparse

parser = argparse.ArgumentParser( description=‘This program prints the name of my dogs’ )

次に、受け入れたい引数を追加します。たとえば、このプログラムでは、-c次のように、色を渡すオプション:python program.py -c red

import argparse

parser = argparse.ArgumentParser( description=‘This program prints a color HEX value’ )

parser.add_argument(’-c’, ‘–color’, metavar=‘color’, required=True, help=‘the color to search for’)

args = parser.parse_args()

print(args.color) # ‘red’

引数が指定されていない場合、プログラムはエラーを発生させます。

➜  python python program.py
usage: program.py [-h] -c color
program.py: error: the following arguments are required: -c

You can set an option to have a specific set of values, using choices:

parser.add_argument('-c', '--color', metavar='color', required=True, choices={'red','yellow'}, help='the color to search for')
➜  python python program.py -c blue
usage: program.py [-h] -c color
program.py: error: argument -c/--color: invalid choice: 'blue' (choose from 'yellow', 'red')

There are more options, but those are the basics.

And there are community packages that provide this functionality, too, like Click and Python Prompt Toolkit.


More python tutorials: