はじめに
pythonにはcmd
という非常に便利なクラスがある。これは簡単に言うと、オリジナルなコマンド待ち受けが作れてしまう。特に自分が気にっているのはアクションの補完機能が勝手に付加されるところ。
何かシンプルなツールを作る時、それは何かのファイルをパースしたり、簡単なデータを送ったり、もちろん普通にスクリプトで書いてもいいと思う。もし、シェルスクリプトなどで作るのが飽きたならば、気分転換でpythonのcmd
クラスを使ってみてもいいかもしれない。
実装
ここではシンプルな実装にする。
from cmd import Cmd
class testCmd(Cmd):
prompt = "hoge) "
def __init__(self):
Cmd.__init__(self)
def do_exe(self, arg):
print "do anything"
def help_exe(self):
print "help : exe"
if __name__ == '__main__':
testCmd().cmdloop()
by gist
簡単な説明
-
prompt
: 待ち受けプロンプトの文字列。設定しなければ(Cmd)
になる。 -
do_xxxx
: プロンプトでxxx
と入力するとコール。 -
help_xxxx
: プロンプトでhelp xxx
と入力するとコールされる。
実行
実行すると以下のような待ち受けプロンプトになる。
hoge)
定義したアクションおよび、ヘルプを呼び出してみる
hoge) exe
do anything
hoge) help exe
help : exe
tab
キーを押すと補完機能が味わえる
hoge)
exe help
おしまい
その他、unknownコマンド(default
)や空白入力時(emptyline
)などをオーバーライドすればよりユーザビリティが高いスクリプトになると思います。詳しくは公式ドキュメントで。
こういった簡単に便利なツールが作れるのはpythonのいいところですね。