簡體   English   中英

在 Mac OS X 上完全清除終端而不退出 Python 腳本

[英]Fully clear terminal on Mac OS X without exiting Python script

我正在使用 Python3 運行一個簡單的實用程序,它接受由逗號、制表符或管道(通常從 csv 復制)分隔的文本輸入,並連接“|”周圍的文本以提高可讀性。

提交空輸入后,終端應清除為下一個輸入做好准備。

這在 Fedora 31 上非常有效,但在 OS X 上,終端只是向下移動以隱藏其余文本,而不是實際清除它。 我試過使用“clear”、“tput reset”,但不知道為什么這不起作用。 如果我在 Perl 中使用 system("tput reset") 而不是 Python,它會正確地清除 OS X 上的終端。

from os import system
import re

def clearScreen():
    system('tput reset')


clearScreen()

while True:
    block = []
    line = '_'

    while line:
        line = input('')
        if len(line) > 0:
            block.append(line)
        else:
            clearScreen()

    for row in block:
        print(' | '.join(re.split('[|,\t]', row)) + '\n')

這是 Mac 的一個怪癖。

使用system("printf '\\\\33c\\\\e[3J'")代替它會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM