コンテンツにスキップ

Top

Pythonのコマンドライン引数

Pythonのコマンドライン引数の取り扱いを容易にする ArgumentParser について述べる。

コマンドライン引数の受け取り方

以下の用に記述すると、コマンドライン引数を順番に取得できる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import argparse



def main():

    parser = argparse.ArgumentParser(description='説明文')
    parser.add_argument('args1')
    args = parser.parse_args()

    print(args.args1)

argparse.ArgumentParserでparser変数を作り、あとは引数がそこに入るので、
args.引数名で値を取得する。

コマンドライン引数にオプションを付けたい

-(ハイフン)をつければ良い。一つだと短縮オプションになる。
(短縮オプション名では値を取得できないので注意)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import argparse



def main():

    parser = argparse.ArgumentParser(description='説明文')
    parser.add_argument('-a', '--args1')
    args = parser.parse_args()

    print(args.args1)

コマンドライン引数を必須にしたい

そもそもオプション引数じゃない場合は強制的に必須になる。
オプション引数の場合は、required=Trueをつければ必須になる。

1
    parser.add_argument('-a', '--args1', required=True)

コマンドライン引数の型を指定する

typeで指定できる。intにしたい場合は以下のようにすれば良い。

1
    parser.add_argument('-a', '--args1', type=int)

typeにboolを指定してはいけない

boolを指定しても望んだ挙動はしない。
Trueを渡そうがFalseを渡そうが常にTrue。

boolではなく、strtoboolを指定すれば望んだ挙動になる。

1
2
3
4
5
6
import argparse
from distutils.util import strtobool



    parser.add_argument('-o', '--option', type=strtobool)