Pythonでコマンド引数を実装したい時はdocoptを利用すると便利です。


docoptはpipでインストールすることができます。


sudo pip install docopt


sample.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""コマンド引数設定

usage:
sample.py sample01 <a> <b> <c>
sample.py sample02 <d> <e>

options:
-h, --help :ヘルプ表示
-v, --version :バージョン

"""

from docopt import docopt

if __name__ == '__main__':

args = docopt(__doc__, version="1.0.0")

a = args.get('<a>')
b = args.get('<b>')
c = args.get('<c>')
d = args.get('<d>')
e = args.get('<e>')
sample01 = args.get('sample01')
sample02 = args.get('sample02')

print ("\n")
print (u"-コマンド引数表示-")
print (u"sample.py " + str(sample01) + " " + str(a) + " " + str(b) + " " + str(c))
print (u"sample.py " + str(sample02) + " " + str(d) + " " + str(e))
print ("\n")


下記コマンドを実行でヘルプを確認。


python sample.py -h


下記コマンドを実行でバージョンを確認。


python sample.py -v


下記コマンドを実行でsample01の引数を確認。


python sample.py sample01 6 3 15


下記コマンドを実行でsample02の引数を確認。


python sample.py sample02 8 35


不正なコマンドを実行すると、正しいコマンドの説明が表示されます。


python sample.py sample02 8 35 3 7


引数を定義:


"""コマンド引数設定

usage:
sample.py sample01 <a> <b> <c>
sample.py sample02 <d> <e>

options:
-h, --help :ヘルプ表示
-v, --version :バージョン

"""


全ての引数を格納:


args = docopt(__doc__, version="1.0.0")


各引数を格納:


a = args.get('<a>')
b = args.get('<b>')
c = args.get('<c>')
d = args.get('<d>')
e = args.get('<e>')
sample01 = args.get('sample01')
sample02 = args.get('sample02')


docoptを利用するとコマンド引数を実装できます。







Q&A