# コマンドライン引数の処理(argparse.ArgumentParser)

# 最低限の呼び出し

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('PARAM1')

args = parser.parse_args()

print(args.PARAM1)
  • これで、引数1個のコマンド結果を取り出せる

# 自分用のテンプレ

import argparse

os.environ['COLUMNS'] = '200'
parser = argparse.ArgumentParser(formatter_class = argparse.ArgumentDefaultsHelpFormatter)

parser.add_argument('位置引数', help = '...', default = 'x', nargs = '?')
parser.add_arugment('-o', '--option', help = '...')
parser.add_argument('--enable-xxx', action = 'store_true', help = '...')
  • -h 出でてくるメッセージにデフォルト値を入れる
  • -h 自動で改行されないようにする(広げてるだけ)

TODO: usageには位置引数が先に出てほしい気がするが、オプション→位置引数の順に出る。カスタマイズ可能?

# 引数の指定のしかた


# 応用的1. 位置引数で省略可 : nargs='?'

parser.add_argument('PARAM1', default = 3, nargs = '?')

# 応用的2. 位置引数で可変長 : nargs='*'

parser.add_argument('PARAM1', nargs = '*')
  • TODO: 0 以上だったか1以上だったか。デフォルト値と関係?

# 応用的3. ファイル名を 標準入力と切り替える : type = FileType()

parser.add_argument('PARAM1', type = argparse.FileType(), default = sys.stdin, nargs = '?')
  • こうすることで、省略したら 標準入力から、

読み込み側は、こう。

for line in args.PARAM1:
  ...

[ 📩 ご意見 ]