簡體   English   中英

如何在Python中清除屏幕?

[英]How to clear the screen in Python?

我知道還有很多其他問題要問同樣的事情,但是它們對我都不起作用,因此我無法評論尋求幫助。 他們只是不為我工作。 我嘗試了各種事情! 我在Mac上,並且將Pycharm與我認為是最新的Python(第3版)一起使用,但我不確定。

1)Cmd + L不起作用。

2)

import os
clear = lambda: os.system('clear')
clear()
well = input("The screen is not clear.")

說“未設置TERM環境變量”。

3)

absolutely_unused_variable = os.system("clear")

說同樣的術語。

4)該

    import subprocess, platform

    if platform.system()=="Windows":
        subprocess.Popen("cls", shell=True).communicate()
    else: #Linux and Mac
        print("\033c", end="")

在最后一行為我打印ac。

我究竟做錯了什么? 我使用clear和cls的所有可能組合嘗試了上述所有方法。 為了確保不是我的Pycharm,我在IDLE Python 3.7.2上嘗試了全部。 我完全拒絕\\ n 100次。 有什么建議么? :)

在類Unix系統中,控制台窗口是字符設備,可以是GUI窗口或實際終端中的任何內容。 不同類型的“設備”需要不同的方法來清除屏幕。 通常,當在終端中啟動外殼程序時,TERM環境變量將被設置為一個值,該值指示終端是什么類型的終端,並且清除屏幕的例程會參考此命令,以確定要寫入的字符以清除它。

如果您在Mac終端窗口中嘗試第一個解決方案,它將清除屏幕。 如果您甚至沒有使用Python都嘗試過,但是未設置TERMINAL環境變量,那么即使系統的“ clear”命令也不會知道如何清除屏幕:

$ echo $TERM
xterm-256color
$ unset TERM
$ clear
TERM environment variable not set.

您遇到的問題並不特定於Python,而是特定於PyCharm終端窗口,該窗口似乎沒有設置此環境變量。

PyCharm終端窗口可能不支持ANSI或其他清除屏幕的順序。 似乎至少支持彩色文本的某些轉義序列。 可能是因為它沒有正確設置環境變量。 您可以嘗試在終端中export TERM=ansi然后嘗試運行clear命令以查看是否有效。

您可能要嘗試的另一件事是使用Click以與設備和平台無關的方式清除屏幕。 一般來說,點擊效果非常好。 例如,即使在終端中取消設置TERM之后,以下內容仍對我有用:

import click
click.clear()

我相信這個主題與PyCharm更相關,您可以在PyCharm中創建自己的鍵盤快捷鍵,以清除屏幕,就像在控制台或cmd上一樣:

  1. 打開Pycharm首選項
  2. 搜索:“全部清除”
  3. 雙擊“全部清除”->添加鍵盤快捷鍵(將其設置為CMD + L或您想要的任何鍵)
  4. 使用快捷方式之前,請確保在控制台(或“運行”窗口)中單擊,否則快捷方式將無效。

暫無
暫無

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

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