Comment réécrire plusieurs lignes dans la console ?

Mary-Kate Olsen
Libérer: 2024-11-10 00:57:02
original
930 Les gens l'ont consulté

How to Rewrite Multiple Lines in the Console?

Réécriture de plusieurs lignes dans la console : au-delà de la dernière ligne

Réimprimer plusieurs lignes dans la console s'avère être un défi particulier. Bien qu'il soit possible de modifier la dernière ligne affichée avec « r », la personnalisation des lignes précédentes reste une tâche insaisissable.

Comprendre le besoin

Ce problème apparaît dans divers scénarios :

  • RPG : affichage dynamique de plusieurs lignes de texte pour un jeu de rôle basé sur du texte.
  • Applications de suivi de progression : mise à jour lignes séparées dédiées aux barres de progression et aux descriptions d'état.

Solutions multiplateformes

La solution idéale s'adresse à la fois aux environnements Unix et Windows :

  • Unix : Le module Curses fournit une boîte à outils complète pour le contrôle des terminaux.
  • Windows : Plusieurs options existent, notamment :

    • PDCurses : Un portage populaire de Curses
    • Module console : Recommandé par la documentation
    • wconio
    • win32console

Un exemple simple avec des malédictions

En utilisant des malédictions, réécrire plusieurs lignes devient une tâche simple :

import curses
import time

def report_progress(filename, progress):
    stdscr.addstr(0, 0, "Moving file: {0}".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()
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal