Pythonのargparseでコマンドライン引数をパース


press
Pythonのargparseでコマンドライン引数をパース

Pythonのargparseでコマンドライン引数をパース

argparseモジュールを使って、Pythonを実行する際にコマンドライン引数を指定してプログラム内に情報を渡す方法です。

引数によって処理を変えたり、別々の値を返す際などに使われたりします。今回はコマンドライン引数を取得して渡された情報を表示するプログラムの説明です。

コードはGitHubリポジトリにあげています。

位置引数の場合

import argparse


parser = argparse.ArgumentParser()
parser.add_argument("v1", type=int, nargs="+")
parser.add_argument("v2")
args = parser.parse_args()

print(args)

コマンド

python cli_args_position.py 1 aaa

結果

Namespace(v1=[1], v2='aaa')

解説

type=int
typeにintを指定しているので数字以外を指定するとエラーが出ます。

nargs="+"
引数を複数にすることも可能

コマンド

python cli_args_position.py 1 2 3 aaa

結果

Namespace(v1=[1, 2, 3], v2='aaa')

オプション引数の場合

import argparse


parser = argparse.ArgumentParser()
parser.add_argument("--v1")
parser.add_argument("--v2")
args = parser.parse_args()

print(args)

コマンド

cli_args_option.py --v1 aaa --v2 bbb

結果

Namespace(v1='aaa', v2='bbb')

オプション引数の場合は引数がなくても実行可能です。

コマンド

python cli_args_option.py

結果

Namespace(v1=None, v2=None)

位置引数とオプション引数の両方を組み合わせた場合

import argparse


parser = argparse.ArgumentParser()
parser.add_argument("v1")
parser.add_argument("--v2")
args = parser.parse_args()

print(args)

コマンド

python cli_args.py aaa --v2 bbb

結果

Namespace(v1='aaa', v2='bbb')

株式会社ファントムへのお問い合わせ

群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    Related Articles

    Python

    Pythonのdatetimeで日付、時間の計算(2)

    Pythonのdatetimeで日付、時間の計算(2) 前回からの続きです。 今回は、曜日を取得したり、特定の曜日の日付を取得します。後半は文字列とdatetimeの変換について説明します。 開発環境 本日の曜日を取得 […]

    Posted on by press
    Django

    pandasで読み込んだCSVの値がNaNだったときの対処方法

    DjangoのWEBプリケーションでCSVをpandasで読み込んでforで一行ずつループ処理をしたところ、毎回決まったところで決まったエラーが出たのでPyCharmのデバッグ機能を使って原因を調べた内容です。 プログラ […]

    Posted on by press

    最新情報をお届けします!

    メーリングリストに登録すると株式会社ファントムの最新情報をお届けします

    お客様のメールアドレスを共有することはありません