我嘗試用另一行替換給定行上打印的文本。爲此,我一直在使用ANSI轉義碼。 我的問題是何時被替換的行在屏幕上不再可見(但通過向上滾動窗口仍然可見),我似乎無法修改它了。 這裏是我的問題的一個簡單的獨立例如:Python打印行上不再可見的終端上使用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
是否有仍然可以訪問行的方法嗎?通過ANSI轉義代碼或任何其他方法?
請注意,您應該使用['curses'](https://docs.python.org/2/library/curses.html)('tigetstr()'和朋友)。控制序列是特定於終端的(例如'CSI F'是經典xterm中的「結束」密鑰)。在Linux上,'CSI F'將光標移動到某一級別,並且您正在覆蓋終端緩衝區中的字符......沒有線路可以恢復 – dhke