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":と書いてエンバグして、やっぱり「なんて不可解な仕様なのだ」とほざいてたのでした。
これからはきちんとリファレンス読もうっと。
これまで、念仏のように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":と書いてエンバグして、やっぱり「なんて不可解な仕様なのだ」とほざいてたのでした。
これからはきちんとリファレンス読もうっと。