Python - Réécrire plusieurs lignes dans la Console
Je sais qu'il est possible de toujours réécrire la dernière ligne affichée dans le terminal avec des "\r", mais j'ai du mal à déterminer si il existe un moyen de revenir en arrière et modifier les lignes précédentes imprimé dans la console.
Ce que je voudrais faire est de réimprimer plusieurs lignes pour un texte de base de RPG, mais un ami a également de s'interroger sur cette pour une application qui a une ligne dédiée à une barre de progression, et une autre décrivant le téléchargement.
c'est à dire la console serait d'impression:
Fichier de déménagement: NameOfFile.txt
Total Des Progrès: [######## ] 40%
et ensuite mettre à jour de façon appropriée (pour les deux) que le programme était en cours d'exécution.
- Quelle plate-forme est-ce censé être sur?
- Unix, spécifiquement Fuduntu, mais j'aimerais qu'il fonctionne sur la plupart des plates-formes de... N'a pas besoin d'être bien.
- stackoverflow.com/questions/3002085/... la bonne réponse, m'a aidé à charges!
Vous devez vous connecter pour publier un commentaire.
Sur Unix, utilisez le les malédictions module.
Sur Windows, il y a plusieurs options:
Exemple Simple utilisant des malédictions (je suis un total de malédictions n00b):
pv --name
dans un pipelineEn fin de compte, si vous voulez manipuler l'écran, vous devez utiliser l'OS sous-jacent des bibliothèques, qui sera généralement:
La réponse de @codeape vous donne déjà quelques de la de nombreuses options si vous n'avez pas l'esprit de coller à une OS ou sont heureux d'installer des bibliothèques tierces sur Windows.
Toutefois, si vous souhaitez une solution multi-plateforme que vous pouvez simplement installer pip, vous pouvez utiliser asciimatics. Dans le cadre de l'élaboration de ce paquet, j'ai eu à résoudre les différences entre les environnements de fournir une API unique qui fonctionne sur Linux, OSX et Windows.
Pour les barres de progression, vous pouvez utiliser le BarChart objet, comme indiqué dans la cette démo à l'aide de ce code.
Ici est un module Python pour Python 2/3, qui peut simplement résoudre ce genre de situation avec un peu de ligne de code ;D
réimpression - Un module simple pour Python 2/3 à imprimer et à actualiser multi sortie de ligne contenu dans le terminal
Vous pouvez simplement considérer que la
output
exemple comme normaldict
oulist
(dépendent du mode que vous utilisez). Lorsque vous modifier que le contenu de laoutput
exemple, la sortie dans le terminal sera automatiquement actualisée 😀Pour votre besoin, voici le code:
output_lines['one'] = 'abcd'
, après sa mise en place comme vous l'avez fait, je suis un zéro erreur de division. Je crois qu'il ya quelque chose de mal ici. Avez-vous un aperçu de qui?get_terminal_size()
retour d'une valeur de (0,0). Puis-je demander pour plus de détails pour que? Vous pouvez la publier sur Github question 😀