Python: ArgumentParserを使用してコマンドライン引数を取得するときのチートシート

Pythonの実行時にコマンドライン引数を取得したい場合には、Pythonの標準モジュールであるArgumentParserを使用すると便利です。

ArgumentParserのシンプルな使用方法

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('arg1')
parser.add_argument('arg2')
parser.add_argument('arg3')
args = parser.parse_args()

print(args.arg1, args.arg2, args.arg3)
python test.py -h
usage: test.py [-h] arg1 arg2 arg3

positional arguments:
  arg1
  arg2
  arg3

optional arguments:
  -h, --help  show this help message and exit
python test.py aaa bbb ccc
('aaa', 'bbb', 'ccc')

オプション引数を取りたい場合

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('arg1')
parser.add_argument('--arg2')
parser.add_argument('-a', '--arg3', default="ccc")
args = parser.parse_args()

print(args.arg1, args.arg2, args.arg3)
python test.py -h
usage: test.py [-h] [--arg2 ARG2] [-a ARG3] arg1

positional arguments:
  arg1

optional arguments:
  -h, --help            show this help message and exit
  --arg2 ARG2
  -a ARG3, --arg3 ARG3
python test.py aaa
('aaa', None, 'ccc')
python test.py aaa --arg2 bbb -a ddd
('aaa', 'bbb', 'ddd')

複数のコマンドライン引数を受け取る

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('arg1', nargs='*')
parser.add_argument('arg2')
args = parser.parse_args()

print(args.arg1, args.arg2)
python test.py -h
usage: test.py [-h] [arg1 [arg1 ...]] arg2

positional arguments:
  arg1
  arg2

optional arguments:
  -h, --help  show this help message and exit
python test.py aaa bbb ccc ddd
(['aaa', 'bbb', 'ccc'], 'ddd')

コマンドライン引数でファイル名を受け取る

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('arg1', type=argparse.FileType('r'))
args = parser.parse_args()

print(args.arg1.read())
python test.py aaa
usage: test.py [-h] arg1
test.py: error: argument arg1: can't open 'aaa': [Errno 2] No such file or directory: 'aaa'
python test.py test.txt
[test.txtの中身]

コメントを残す

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