Ad
2: 2016-12-24 (土) 14:09:37 njf ソース バックアップ No.2 を復元して編集 現: 2016-12-28 (水) 15:08:47 njf ソース 編集
Line 4: Line 4:
 import sys  import sys
 + 
 for a in sys.argv:  for a in sys.argv:
     print a      print a
Line 27: Line 27:
 # -*- coding: utf-8 -*-  # -*- coding: utf-8 -*-
 import argparse  import argparse
- +  
- parser = argparse.ArgumentParser()+ parser = argparse.ArgumentParser(description=u'二個の整数の引数をそのまま出力します')
 parser.add_argument("a1", help=u"数値1", type=int)  parser.add_argument("a1", help=u"数値1", type=int)
 parser.add_argument("a2", help=u"数値2", type=int)  parser.add_argument("a2", help=u"数値2", type=int)
 + 
 args = parser.parse_args()  args = parser.parse_args()
 print args.a1, args.a2  print args.a1, args.a2
Line 62: Line 62:
とすると、 とすると、
 usage: arg_test.py [-h] a1 a2  usage: arg_test.py [-h] a1 a2
 +  
 + 二個の整数の引数をそのまま出力します 
 + 
 positional arguments:  positional arguments:
   a1          数値1    a1          数値1
   a2          数値2    a2          数値2
 + 
 optional arguments:  optional arguments:
   -h, --help  show this help message and exit    -h, --help  show this help message and exit
ちゃんとヘルプメッセージが出ます。 ちゃんとヘルプメッセージが出ます。
 +
 +オプションを指定するには以下のようにします。
 + # -*- coding: utf-8 -*-
 + import argparse
 + parser = argparse.ArgumentParser(description=u'二個の整数の引数をそのまま出力したり加算したりします')
 + parser.add_argument("a1", help=u"数値1", type=int)
 + parser.add_argument("a2", help=u"数値2", type=int)
 + parser.add_argument("--add", help=u"加算する",action="store_true")#オプション
 + args = parser.parse_args()
 + 
 + if args.add:
 +     print args.a1 + args.a2
 + else:
 +     print args.a1, args.a2
 +
 +ここで
 +  parser.add_argument("--add", help=u"加算する",action="store_true")#オプション
 +が増えています。
 +
 +「action="store_true"」を指定することで、もしオプションとして"--add"が指定されていると、引数をパースしたときに、「add」にTrueが入ります。
 +
 +実行結果は、
 + $ python arg_test.py --add 1 2
 + 3
 +
 +となり、加算されます。「--add」がなければ前の結果と同じです。
これらの処理を自分で実装するとかなり大変ですが、argparseを使うと数行で実現できます。 これらの処理を自分で実装するとかなり大変ですが、argparseを使うと数行で実現できます。
 +
 +argparseにはこれ以外にもたくさんの機能があります。
 +正直多すぎて使いこなせません。
 +ちょっとしたツールで使うなら上の例の程度知っておけば十分でしょう。
 +
 +詳しい機能は、とてもここでは紹介しきれないので、公式サイト[[http://docs.python.jp/2/library/argparse.html]]を参照してください。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 3056, today: 1, yesterday: 1
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF