Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Python

Pythonでargparseを用いて引数を受け取って実行する方法

投稿日:2020年12月23日 更新日:

<目次>

(1) Pythonでargparseを用いて引数を受け取って実行する方法
 (1-1) argparseとは?
 (1-2) 基本的な使い方
 (1-3) サンプルプログラム
(2) 参考:argparseの引数の種類について
 (2-1) positional arguments
 (2-2) optional arguments

(1) Pythonでargparseを用いて引数を受け取って実行する方法

(1-1) argparseとは?

argparseはPythonで「位置指定引数」(positional arguments)を扱うためのパッケージです。位置指定引数とは引数の順番が意味を持つ引数です(順番を正しく保つ必要がある)。Python2.7でoptparseの後継機能として導入されています。

目次にもどる

(1-2) argparseの最も基本的な使い方

■STEP1:Parserオブジェクトの作成

まず最初のステップとして「parserオブジェクト」を作ります。
(STEP1)

import argparse
parser = argparse.ArgumentParser(description='Description of the argument')
 
■STEP2:引数の設定

次に「add_argument()」を使い、何の引数を待ち受けるかを教えます。それによりparserはプログラムのランタイム(実行時)にコマンドライン引数を処理する事ができます(ユーザが実行時に引数を与える)。
(STEP2)

parser.add_argument('indir', type=str, help='Input dir for videos')
parser.add_argument('outdir', type=str, help='Output dir for image')
 
■STEP3:引数の構文解析

parse_args()メソッドを用いて引数を構文解析(?)して格納します。
(STEP3)

args = parser.parse_args()

目次にもどる

(1-3) サンプルプログラム

argparseを使用して引数を受け取るサンプルプログラムをご紹介します。

(サンプルプログラム)

import argparse

def main():
    #(1)parsarオブジェクトの作成
    parser = argparse.ArgumentParser(description='Tiff to JPEG')
    #(2)引数を作成
    parser.add_argument('input', type=str, help='Input dir for Tiff')
    parser.add_argument('output', type=str, help='Output dir for JPEG')
    #(3)構文解析した引数を「args」変数にセット
    args = parser.parse_args()
    print(args.input)
    print(args.output)

if __name__ == '__main__':
    main()

上記サンプルプログラムをコマンドラインから、「スペース区切り」で引数を2つ与えて実行すると、その引数を受け取ってコンソール表示しています。

(図131)
引数に「ABCD」と「EFGH」を与えると、その引数を受け取って表示しています。
1つ目の引数が「indir」に格納され、2つ目の引数が「outdir」に格納されています。
ちなみに、引数を与える時はクォーテーションで囲まなくても正常に動作します。

目次にもどる

(2) 参考:argparseの引数の種類について

argparserにおける引数は2つの種類があり、基本は全て「①positional arguments」であり、「–help」のみが「②optional arguments」になります。

(2-1) positional arguments

引数には順序があり、最初に記述した引数が1つ目の変数(例では「input」)にセットされ、次に記述した引数が2つ目の変数にセットされます(例では「output」)。

(2-2) optional arguments

「–help」(及び短縮形の「-h」)は唯一のデフォルトで使えるオプション引数で「-」や「–」が付いているのが特徴です。「–help」は定義されている引数の情報をコンソールに出力します。

(図221)引数を定義したプログラムの末尾に「–help」を付けて実行すると引数の情報が表示されます。

 
また事前定義されているのは「–help」のみですが、optional argumentsは自身で定義する事もできます。
(例)
parser.add_argument('-r', '--rainbow')

 

Adsense審査用広告コード


Adsense審査用広告コード


-Python

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

PythonのSQLAlchemyで「ArgumentError : Could not parse rfc1738 URL」エラーや「InvalidRequestError: Could not reflect: requested tables(s)」エラーが出た時の対処について

(0)目次&概説 (1) エラー対応1:sqlalchemy.exc.ArgumentError  (1-1) 発生状況・エラーメッセージ   (1-1-1) エラーメッセージ   (1-1-2) エ …

PythonにOpenCVを導入して画像を読込み&表示&拡大縮小してみる

(0)目次&概説 (1) OpenCVとは (2) OpenCVのインストール  (2-1) インストール資源の入手  (2-2) インストール時の注意事項  (2-3) インストールの実行 (3) …

PythonのSQLAlchemyで「Identifier ‘XXX’ exceeds maximum length of 30 characters」エラーや「DtypeWarning: Columns (X) have mixed types.」警告が出た時の対処について

(0)目次&概説 (1) エラー1:sqlalchemy.exc.ArgumentError  (1-1) 発生状況・エラーメッセージ   (1-1-1) エラーメッセージ   (1-1-2) エラー …

Pythonでcsvを読み込んでデータベース化する方法~pandasのto_sqlを用いたテーブルへのINSERT~

<目次> (1) Pythonでcsvを読み込んでデータベース化する方法  (1-1) 構文(to_sql)  (1-2) 構文(to_sql)の引数  (1-3) サンプルプログラム (1) Pyt …

Pythonで複数の画像を結合する方法をご紹介

<目次> (1) Pythonで複数の画像を結合する方法  (1-1) STEP1:Pillowのインストール  (1-2) STEP2:画像の読み込み  (1-3) STEP3:画像を結合  (1- …

  • English (United States)
  • 日本語
Top