3

300〜1000行のデータを出力するプログラムがあります。すべてを一度に出力するのではなく、マンページのようなインターフェイスを使用して、最初の50行程度の入力を表示し、ユーザーが「f」または「b」を押してナビゲートできるようにします。ページ。Pythonでこれを行う方法はありますか?

注:プログラムを配布したいのですが、ユーザーに出力をless/moreにパイプするように強制したくありません。さらに、出力はプログラムの途中で発生し、プログラムの唯一の出力ではないので、それがどのように機能するかはわかりません。

4

2 に答える 2

2

注:私はこれを行うことは決してありません、そしてそれは非常に悪いUIXだと思います、しかし...

pager = subprocess.Popen(['less'], stdin=subprocess.PIPE)

次に、コマンドのすべての出力をファイルのようなオブジェクトに書き込みます。pager.stdin

于 2013-03-12T18:26:08.977 に答える
2

次のような非常に初歩的なことを行うことができます。

# pseudocode 
def display_text(text):
    lines = text.splitlines()
    while lines remaining:
        display next N lines
        wait for key press

「キーが押されるのを待つ」には、次のようにします。http ://www.daniweb.com/software-development/python/threads/123777/press-any-key-to-continue

于 2013-03-12T19:00:08.760 に答える