Sur-imprimer du texte

Fermé
Srytx Messages postés 2 Date d'inscription mardi 25 août 2020 Statut Membre Dernière intervention 25 août 2020 - Modifié le 25 août 2020 à 18:10
Srytx Messages postés 2 Date d'inscription mardi 25 août 2020 Statut Membre Dernière intervention 25 août 2020 - 25 août 2020 à 19:01
Salutations, je suis débutant en python, et j'aurais aimer savoir si il était possible de imprimer sur du texte déjà existant.
J'aimerais notamment vis ce code :

def delay_print(s):
for c in s:
sys.stdout.write(c)
sys.stdout.flush()
time.sleep(0.25)


Imprimer du texte dans un cadre imprimer au préalable :

print("┌-----------------------------------------------------------------------------┐")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("│ │")
print("└-----------------------------------------------------------------------------┘")


J'espère que vous pourrez m'éclairer sur ce sujet, et je vous en remercie d'avance !

1 réponse

quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 347
25 août 2020 à 18:44
Bonjour,
les consoles sont faites normalement pour écrire les caractères les uns à la suite des autres normalement, mais il existe des solutions dans certains cas.
Déjà il existe le caractère \b qui permet de revenir en arrière d'un cran et le caractère \r qui permet de revenir au début de la ligne (sans passer à la ligne suivante).
Vous pouvez donc faire quelque chose comme ça :
import sys
import time
sys.stdout.write("abc")
sys.stdout.flush()
time.sleep(1)
print("\rdef")

Par contre ça ne fonctionne que pour réécrire sur la dernière ligne, on ne peut pas réécrire plusieurs ligne au dessus avec cette méthode.

Sinon vous pouvez aussi vous renseigner sur l'utilisation du module curses qui permet de manipuler les terminaux Linux compatibles (je ne sais pas s'il existe un module équivalent pour Windows) en envoyant des caractères spéciaux de controle . Vous pouvez faire beaucoup de choses avec ce module, comme déplacer le curseur où vous le souhaitez, changer la couleur du texte, etc.
Voici un exemple d'utilisation :
import sys
import time
import curses
curses.setupterm()
print("abc")
time.sleep(1)
print("def")
time.sleep(1)
move = curses.tparm(curses.tigetstr("cuu"), 2)
sys.stdout.buffer.write(move)
print("ghi")
time.sleep(1)
print("jkl")
0
Srytx Messages postés 2 Date d'inscription mardi 25 août 2020 Statut Membre Dernière intervention 25 août 2020
25 août 2020 à 19:01
Je mettais renseigner sur l'utilisation de curses, mais sans succès. Etant sous windows, je vais donc simplement abandonner l'idée d'animer mon texte.
Merci pour votre aide !
0