Pythonのコマンドモジュールの使い方を教えてください
Cmdモジュールは、インタラクティブなコマンドラインパーサーを作成するために使用されるクラスベースのモジュールです。Cmdモジュールを使用する基本的な手順を以下に示します。
- CMDモジュールをインポートします:import cmd
- コマンドライン処理に特化したcmd.Cmdを継承するサブクラスを作成し、そのメソッドをオーバーライドする。
簡単な例を次に示します。
import cmd
class MyCmd(cmd.Cmd):
prompt = '>> ' # 设置命令行提示符
def do_hello(self, arg):
"""
hello命令示例
"""
print('Hello, world!')
def do_quit(self, arg):
"""
退出命令行解析器
"""
return True
if __name__ == '__main__':
my_cmd = MyCmd()
my_cmd.cmdloop() # 启动命令行解析器
上記の例では、cmd.Cmdを継承するMyCmdというサブクラスを作成しました。do_helloとdo_quitメソッドをオーバーライドして独自のコマンドを定義します。prompt属性はコマンドラインプロンプトを設定するために使用されます。
MyCmdクラスの__main__部では、MyCmdインスタンスを作成し、cmdloop()メソッドを呼び出してコマンドラインパーサーを起動します。
サンプルコードを実行すると、コマンドプロンプト(>>)が表示され、「hello」と入力してdo_helloメソッドを実行したり、「quit」と入力してパーサーを終了したりできます。
do_コマンド方式以外にも書き換える方法が複数あります。例えば:
- precmd(self, line):コマンド実行前に呼び出され、入力に対して処理をすることができます。
- コマンド実行後に呼び出されるメソッドで、出力の処理などを行うことができます。
- emptyline(self):入力された要素が空行のとき呼び出すメソッド。デフォルトの動作では、空行時は何もしない。
- デフォルトでは「Unknown command」が出力される、入力したコマンドにマッチするメソッドが存在しない場合に呼び出されるメソッド
詳細については、Python公式ドキュメントのcmdモジュールドキュメントを参照してください。