J'essaie de remplacer le texte imprimé sur une ligne par un autre. Pour cela, j'ai utilisé les codes d'échappement ANSI. Mon problème est lorsque la ligne à remplacer n'est plus visible sur l'écran (mais encore visible en faisant défiler la fenêtre) Je ne semble plus pouvoir la modifier. Voici un exemple simple autonome de mon problème:Impression Python sur des lignes qui ne sont plus visibles sur le terminal avec les codes d'échappement ANSI
import os
nb_lines_term = int(os.popen('stty size', 'r').read().split()[0])
tot_lines = nb_lines_term + 5
for i in range(tot_lines):
print 'line', tot_lines - i
line_to_replace = nb_lines_term + 2
new_str = "\033[F" * line_to_replace # go u
new_str += 'replacing line ' + str(line_to_replace)
new_str += "\033[E" * (line_to_replace - 1) # go back down
print new_str
est-il un moyen d'accéder à la ligne encore? par codes d'échappement ANSI ou toute autre méthode?
Notez que vous devriez probablement utiliser ['curses'] (https://docs.python.org/2/library/curses.html) (' tigetstr() 'et amis) pour cela. Les séquences de contrôle sont spécifiques au terminal (par exemple 'CSI F' est la touche" End "dans le classique xterm). Sous Linux, 'CSI F' déplace le curseur d'un niveau et vous écrasez les caractères dans le tampon du terminal ... il n'y a plus de ligne à restaurer – dhke