擅长:python、mysql、java
<p>在类Unix的系统中,控制台窗口是一个字符设备,可以是GUI窗口中的任何内容,也可以是实际终端。不同类型的“设备”需要不同的方法来清除屏幕。通常,当shell在终端中启动时,TERM环境变量被设置为一个值,该值指示终端是什么类型的,而清除屏幕的例程会参考此值来确定要写入哪些字符以清除它。在</p>
<p>如果您在Mac终端窗口中尝试第一个解决方案,它将清除屏幕。如果您在不使用Python的情况下尝试,但是取消设置TERMINAL环境变量,那么即使是系统“clear”命令也不会知道如何清除屏幕:</p>
<pre><code>$ echo $TERM
xterm-256color
$ unset TERM
$ clear
TERM environment variable not set.
</code></pre>
<p>您遇到的问题不是Python特有的,而是PyCharm终端窗口的问题,它似乎没有设置这个环境变量。在</p>
<p>可能是PyCharm终端窗口不支持ANSI或其他清除屏幕的序列。它<a href="https://github.com/JetBrains/intellij-community/blob/master/platform/platform-api/src/com/intellij/execution/process/AnsiEscapeDecoder.java" rel="nofollow noreferrer">does appear to support</a>至少有一些彩色文本的转义序列。可能是因为它没有正确设置环境变量。您可以在终端中尝试<code>export TERM=ansi</code>,然后<em>然后</em>尝试运行clear命令,看看是否有效。在</p>
<p>您可以尝试的另一种方法是使用<a href="https://click.palletsprojects.com/en/7.x/" rel="nofollow noreferrer">Click</a>以独立于设备和平台的方式清除屏幕。一般来说,点击相当不错。例如,即使在终端中取消设置TERM之后,以下命令仍然适用:</p>
^{pr2}$