cmdモジュールを使用して Python アプリのプロトタイプを作成しています。
ユーザーへの一部のメッセージは非常に長くなり、ページ番号を付けたいと思います。メッセージの最初の 10 行 (または構成可能な数) が表示され、SPACE バーを押すと、メッセージの終わりまで次のページが表示されます。
ここで何かを再発明したくありません。この機能を実装する簡単な方法はありますか?
cmdモジュールを使用して Python アプリのプロトタイプを作成しています。
ユーザーへの一部のメッセージは非常に長くなり、ページ番号を付けたいと思います。メッセージの最初の 10 行 (または構成可能な数) が表示され、SPACE バーを押すと、メッセージの終わりまで次のページが表示されます。
ここで何かを再発明したくありません。この機能を実装する簡単な方法はありますか?
上で Yoni が言ったように、これを行う正しい方法は、実行中の cmd インスタンス内で自動的にページングする print メソッドを提供することです。Cmd のコンストラクターは、stdin および stdout 引数を取ります。標準出力のように機能し、ページング印刷メソッドをサポートするオブジェクトを提供するのはとても簡単です。
class PagingStdOut(object):
def write(self, buffer, lines_before_pause=40):
# do magic paging here...
ページング サブルーチンは、 IPythonのgenutils.pyファイルにあります(より単純なものについては、またはを参照してください)。コードは少し複雑ですが、Windows やさまざまな種類の端末エミュレーターを含むシステムに移植できるようにするには、おそらく避けられないでしょう。page
page_dumb