路傍のプログラマ

只のプログラマが綴る愚痴と備忘録

gnu_getopt

2008-04-11 16:09:45 | プログラミング
Pythonのコマンドラインパーザーのgetoptの話です。

これまで、念仏のようにgetopt.getopt()って唱えてました。

そもそもgetoptの存在自体、適当にサンプルコードをググって初めて知ったので、これ以外の使い方があるとはつゆほども疑っていませんでした。

で、時々、
hogeprog.py argument -f flag
みたいなことをやってエラーが出て、「引数の後にオプション書けないんだった。面倒だなあ」とかぼやいてました。

今日、きちんとリファレンスを読んで、初めて知りました。
getopt.gnu_getopt()って書けば、オプションと引数が混在しても大丈夫なことを!

ついでに、(gnu_)getopt()で返される(key, value)のタプルのリストで、keyの値になぜハイフンがつくのかも、やっと理解できました。

これまでは、
opts, args = getopt.getopt("f:")
とやって、
for k, v in opts:
 if k == "-f":
  ほげほげ
となるのがどーにもイヤで、時々、if k == "f":と書いてエンバグして、やっぱり「なんて不可解な仕様なのだ」とほざいてたのでした。

これからはきちんとリファレンス読もうっと。

最新の画像もっと見る