dayjournal memo

Total 975 articles!!

Python #004 - コマンド引数設定

Yasunori Kirimoto's avatar

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を利用するとコマンド引数を実装できます。



book

Q&A