動的テキスト変更のためにコンソールで複数行を書き換えるにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-08 16:55:02
オリジナル
235 人が閲覧しました

How to Rewrite Multiple Lines in the Console for Dynamic Text Modification?

動的テキスト変更のためのコンソールでの複数行の書き換え

テキストベースのアプリケーションでは、多くの場合、複数行の更新と書き換えが必要になります。コンソールで動的なユーザー対話を実現します。これは、ディスプレイのレイアウトとプレゼンテーションを保持しようとするときに問題になる可能性があります。

さまざまなオペレーティング システムでは、この動作を実現するためのさまざまな方法が存在します。

Unix

  • curses モジュールを利用して、端末のカーソルと画面の操作を制御します。

Windows

利用可能なオプションがいくつかあります:

  • PDCurses: Windows 用のポータブル Curses 実装。
  • Console: Python ドキュメントで推奨されています。 (https://docs.python.org/3/library/console.html)。
  • wconio: コンソール操作用の Windows 固有のモジュール。
  • win32console: Windows コンソール機能の低レベル インターフェイス。

curses を使用したサンプル コード

次の Python コードは、curses の使用方法を示しています。ターミナル内の複数の行を書き換えるためのcurses:

import curses
import time

def report_progress(filename, progress):
    """progress: 0-10"""
    stdscr.addstr(0, 0, "Moving file: {}".format(filename))
    stdscr.addstr(1, 0, "Total progress: [{1:10}] {0}%".format(progress * 10, "#" * progress))
    stdscr.refresh()

if __name__ == "__main__":
    stdscr = curses.initscr()
    curses.noecho()
    curses.cbreak()

    try:
        for i in range(10):
            report_progress("file_{0}.txt".format(i), i+1)
            time.sleep(0.5)
    finally:
        curses.echo()
        curses.nocbreak()
        curses.endwin()
ログイン後にコピー

このコードは、curses を使用してテキストベースの画面を初期化し、エコーと行バッファリングを無効にし、画面上にテキストを印刷し、表示を更新します。 report_progress 関数を繰り返し呼び出すことで、コンソール内の複数の行を動的に更新できます。

以上が動的テキスト変更のためにコンソールで複数行を書き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート