ある行に印刷されたテキストを別の行に置き換えようとしました。 そのために、私はANSIエスケープコードを使用しています。 私の問題は、置き換えられる行が画面に表示されなくなったときです(ただし、ウィンドウをスクロールしても表示されます)。私はもうそれを変更できないようです。ここ は私の問題の簡単なスタンドアロンの例である:ANSIエスケープコードで端末に表示されない行にPython印刷
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
はまだラインにアクセスする方法がありますか? ANSIエスケープコードまたは他の方法で
これは、['curses'](https://docs.python.org/2/library/curses.html)(' tigetstr() 'と友人)を使用してください。制御シーケンスは端末特有のものである(例えば、「CSI F」は古典的なxtermの「終了」キーである)。 Linuxでは 'CSI F'はカーソルをレベルアップさせ、ターミナルバッファの文字を上書きしています...もう復元する行はありません – dhke