KEIS BLOGは株式会社ケイズ・ソフトウェアが運営しています。

KEIS BLOG

Python -argparse-


Pythonのプログラムを実行する際に引数を受け取るやり方はいくつかありますが
今回は、標準モジュールの「argparse」を使ってみたいを思います。

■argparse
https://docs.python.jp/3/library/argparse.html

実行時に受け取る引数は、
– 設定ファイル(必須)
– 日付(任意)
にします。

import argparse

parser = argparse.ArgumentParser(description='do something program')
parser.add_argument("-conf_file", type=str, help = "conf_file location. This argument is required", required=True)
parser.add_argument("-date", type=str, help = "target date. This argument is optional", required=False)

args = parser.parse_args()

print(args)

上記の内容でファイルを作成して、
下記のコマンドを実行すると引数に関するヘルプを表示することができます。

python parser_test.py -h

#########################################
usage: parser_test.py [-h] -conf_file CONF_FILE [-date DATE]

do something program

optional arguments:
  -h, --help            show this help message and exit
  -conf_file CONF_FILE  conf_file location. This argument is required
  -date DATE            target date. This argument is optional
#########################################

実際に引数を指定して実行する場合は、

python parser_test.py -conf_file hogehoge.conf -date 2000-01-01

#########################################
Namespace(conf_file='hogehoge.conf', date='2000-01-01')
#########################################

引数を何も設定せずに実行した場合はエラーメッセージが表示されます。

python parser_test.py

#########################################
usage: parser_test.py [-h] -conf_file CONF_FILE [-date DATE]
parser_test.py: error: the following arguments are required: -conf_file
#########################################

今回は単純な設定でしか使っていませんが、いろいろとオプションを設定できるよなので、
複雑なこともできると思います。

【関連記事】
3分で構築するRuby on Rails開発環境
続・3分で構築するRuby on Rails開発環境~MySQL設定編~
フラットデザインとレスポンシブデザイン
「Cloudera World Tokyo 2014」に行ってきました
Code Avengers(コードアベンジャーズ)
paizaでスキルチェック ~オンラインハッカソンに挑戦~
そしてスーパープログラマーへ
Hackmeに挑戦!
Railsで作るAPI
Ruby on Rails -turnout-
Ruby on Rails -migration-
Windows 10にアップグレードしてみました
Windows 神モード
Ruby on rails -slim-
WindowsでVimを使う(1)
「Cloudera World Tokyo 2015」に行ってきました
Ruby on Rails -gitignore.io-
Windowsでパッケージ管理
プログラミング言語を武器に例えると
Vagrantで開発環境構築
ワンライナーでWebサーバ起動
Vim like in Chrome
mailcatcher – インストール編
mailcatcher – 設定編
mailcatcher – API編
tigを使ってみました
NodeSchoolに入学
Vim Bootstrapを使ってみる
ギットクエストやってみました
VIM Adventures -LEVEL 1-
VIM Adventures -LEVEL 2-
VIM Adventures -LEVEL 3-
Python -インストール編
Python -パッケージ管理
Python -dateutils-
Python -itertools-
Python -retry-