Python 清空控制台的几种方法

Python 清空控制台的几种方法

我们在写代码的时候经常会发现:当Python控制台输入过多的Python语句时,有时需要将这些已经输入的语句和执行结果清空,并重新开始输入Python语句。我们不再想要展现控制台上显示的内容,需要将他们清空,我们该怎样做呢?

1. reset

我们在Python Console中输入reset

reset方法结果:清空控制台

但是这种方法也有缺点,就是清屏命令需要运行时或运行后手动输入,不能实现在程序当中直接用代码清空控制台。另外,这个指令也会删除所有我们之前定义的变量、列表等等(如下图),不建议使用。

clear之后我们不能再调用之前定义的a变量

2. os.system(‘cls’)

第二种方法就是在代码当中导入os模块并执行cls命令。

需要注意的是:

  1. 如果用的是Windows系统,需要使用cls
  2. 如果用的是Linux或Mac,需要使用clear
  3. system调用底层的实现是阻塞的系统调用执行外部命令,相当于是先后调用了fork,exec,waitpid来执行外部命令。简单的清屏功能,如此大费周章太不合理了
  4. 在语句执行完成之后会在控制台上面留下‘0’,作为命令执行成功的返回值,这样显然没有达到清空的目的

代码附上:

#以下适用于Windows系统
import os
print(0)
os.system('cls')
#以下适用于Linux/Mac系统
import os
print(0)
os.system('clear')

清空Python控制台不输出“0”

步骤如下:

(1)导入os模块和sys模块。

(2)使用open函数以写的方式打开一个文件。

(3)为了不影响在Python控制台输出其他语句的执行结果,应先将Python默认的标准输出保存到一个变量中,以便以后恢复默认的Python标准输出。使用sys.stdout可以获取Python标准输出的句柄。

(4)将Python标准输出指向第2步打开的文件。

(5)使用os.system函数执行cls命令。

(6)恢复Python默认标准输出。

代码:

import os,sys
handler=open("out.log",'w')
old=sys.stdout
sys.stdout=handler
os.system('cls')
sys.stdout=old

3. 控制码清屏

代码就一句

print("\033c", end="")

相信用过C语言实现过一些改变控制台字符颜色等功能的小程序的同学就会知道,像\33开头这样的控制码可以修改很多控制台的输出属性,上面的\033c就是清屏指令。

这个函数调用效果和Linux下的clear、Windows下的cls有些不同。输出\033c,会直接把屏幕的内容清空,之前输入和输出的内容会全部消失不见。

4. 使用Mac OS X的小伙伴们看过来,有更简单的!

使用Mac OS X的同志们直接使用 Ctrl+L 即可!!!

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/a2ae2546f3.html