40
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonでコマンド待ち受けツールを作ってみる

Posted at

はじめに

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のいいところですね。

40
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?