【Python】コマンドライン引数とオプション

Python

サンプルコード

まずはサンプルコードです。

sample.py
import argparse

def arg_parser():
    """Parser."""
    parser = argparse.ArgumentParser()
    parser.add_argument("arg1")  # 引数
    parser.add_argument("-arg2", action="store_true")  # オプション
    parser.add_argument("--arg3", default="nume")  # オプション引数
    return parser.parse_args()

arg = arg_parser()
print(arg.arg1)
print(arg.arg2)
print(arg.arg3)
実行
python sample.py hoge
# 出力
# hoge
# False
# nume

解説

引数

引数を追加したい場合は下記のように記述します。

必須引数で、引数なしで実行するとエラーになります。

parser.add_argument("arg1")
sample1.py
import argparse

def arg_parser():
    """Parser."""
    parser = argparse.ArgumentParser()
    parser.add_argument("arg1")  # 必須の引数。与えないとエラーを返す。
    return parser.parse_args()

arg = arg_parser()
print(arg.arg1)
実行
python sample1.py
# 出力
# usage: sample.py [-h] arg1
# sample.py: error: the following arguments are required: arg1

オプション

オプションを付けたい場合は下記のように記述します。

オプションを指定していないときはFalse、オプションを付けるとTrueが返ります。

parser.add_argument("-arg2", action="store_true")  # オプション
sample2.py
import argparse

def arg_parser():
    """Parser."""
    parser = argparse.ArgumentParser()
    parser.add_argument("-arg1", action="store_true")  # オプション
    parser.add_argument("-arg2", action="store_true")  # オプション
    return parser.parse_args()

arg = arg_parser()
print(arg.arg1)
print(arg.arg2)
実行
python sample2.py -arg1
# 出力
# True
# False

オプション引数

オプションで引数を付けたい場合は下記のように記述します。

defaultを指定しないときはNoneがデフォルト値になります。

parser.add_argument("--arg3", default="nume")  # オプション引数
sample3.py
import argparse

def arg_parser():
    """Parser."""
    parser = argparse.ArgumentParser()
    parser.add_argument("--arg1", default="hoge")  # オプション引数
    parser.add_argument("--arg2", default="fuga")  # オプション引数
    return parser.parse_args()

arg = arg_parser()
print(arg.arg1)
print(arg.arg2)
実行
python sample2.py --arg1 piyo
# 出力
# piyo
# fuga

まとめ

コマンドライン引数とオプションについてまとめました。

コメント

タイトルとURLをコピーしました