Python从菜鸟到高手(2):清空Python控制台
执行python命令会进入Python控制台。在Python控制台中可以用交互的方式执行Python语句。也就是执行一行Python语句,会立刻返回执行结果。
当Python控制台输入过多的Python语句时,有时需要将这些已经输入的语句和执行结果清空,并重新开始输入Python语句。例如,下图就是一个输入了多条Python语句,并输出相应结果的Python控制台。
。

当然,如果不想看到这些Python语句和输出结果,可以一直按“回车” 键,直到Python控制台中所有的内容都移到窗口上面为止。不过这样以来,光标还是在Python控制台的最下面,而且上面都是Python控制台的命令提示符,非常难看,如下图所示。

如果读者用的是Mac OS X系统,在Python控制台中直接按Ctrl+L键就可以直接清空Python控制台。而在Windows中,是没有快捷键用来清空Python控制台的,所以需要我们编写Python代码来实现清空Python控制台的功能。因此,本节的目的到现在已经很清楚了,本节主要并不是教大家如何清空Python控制台,而是借用清空Python控制台这一操作,利用前面两节介绍的导入模块和声明变量的知识,编写一段Python程序,用来清空Python for Windows控制台。
在Windows下,如果要清空Windows控制台,执行cls命令即可。由于Python控制台是利用Windows控制台实现的,所以cls命令也同样可以清空Python控制台。不过在Python控制台不能直接执行cls命令。在Python控制台要想执行外部命令,需要调用os模块中的system函数。读者可以一行一行在Python控制台输入下面的代码。
import os # 导入os模块
os.system('cls') # 执行cls命令清空Python控制台
执行这两行代码,是把以前在Python控制台中输入的内容都清空了,但在Python控制台的第1行会输出一个“0”,如下图所示。

其实这个“0”是os.system函数的返回值。Python控制台会输出每一条执行语句的返回值。os.system函数如果成功执行命令,返回“0”,如果执行命令失败,返回“1”。不过为了最求完美,现在就把这个“0”去掉。
之所以会输出这个“0”,是因为Python语言的标准输出默认指向的是Python控制台,所以所有的Python语句执行的结果都输出到了Python控制台。现在只要改变Python语言的标准输出,让其指向一个文件,那么os.system函数的执行结果就会直接写到这个文件中,而不是Python控制台了。
下面的例子会编写一个Python程序,用于清空Python控制台。
清空Python控制台不输出“0”的步骤如下:
(1)导入os模块和sys模块。
(2)使用open函数以可写的方式打开一个文件,本例是out.log。
(3)为了不影响在Python控制台输出其他语句的执行结果,应先将Python默认的标准输出保存到一个变量中,以便以后恢复默认的Python标准输出。使用sys.stdout可以获取Python标准输出的句柄(Handler)。
(4)将Python标准输出指向第2步打开的文件。
(5)使用os.system函数执行cls命令。
(6)恢复Python默认的标准输出。
完整的实现代码如下。读者可以在Python控制台一行行输入这些代码,当执行到os.system(‘cls’)语句时,Python控制台被清空,不会再显示“0”。
import os # 导入os模块
import sys # 导入sys模块
f_handler=open('out.log', 'w') # 打开out.log文件
oldstdout = sys.stdout # 保存默认的Python标准输出
sys.stdout=f_handler # 将Python标准输出指向out.log
os.system('cls') # 清空Python控制台
sys.stdout = oldstdout # 恢复Python默认的标准输出
《Python从菜鸟到高手》知识结构图。
扫描二维码关注“极客起源”公众号,技术文章、视频课程应有尽有
欢迎关注“Python开发者基地”公众号
Python从菜鸟到高手(2):清空Python控制台的更多相关文章
- 《Python从菜鸟到高手》已经出版,开始连载了,购买送视频课程
好消息,<Python从菜鸟到高手>已经出版!!! JetBrains官方推荐图书!JetBrains官大中华区市场部经理赵磊作序!送2400分钟同步视频课程!500个案例,400道P ...
- Python从菜鸟到高手(1):数字
本文主要内容: 1. 数字的基础知识 2. 大整数 3. 二进制.八进制和十六进制 4 数字的格式化输出 一.数字的基础知识 Python语言与其他编程语言一样,也支持四则运算(加.减.乘.除),以及 ...
- Python从菜鸟到高手(6):获取用户输入、函数与注释
1. 获取用户输入 要编写一个有实际价值的程序,就需要与用户交互.当然,与用户交互有很多方法,例如,GUI(图形用户接口)就是一种非常好的与用户交互的方式,不过我们先不讨论GUI的交互方式,本节会 ...
- Python从菜鸟到高手(5):数字
1 基础知识 Python语言与其他编程语言一样,也支持四则运算(加.减.乘.除),以及圆括号运算符.在Python语言中,数字分为整数和浮点数.整数就是无小数部分的数,浮点数就是有小数部分的数. ...
- Python从菜鸟到高手(3):声明变量
变量(variable)是Python语言中一个非常重要的概念.变量的主要作用就是为Python程序中的某个值起一个名字.类似于"张三"."李四"." ...
- Python从菜鸟到高手(1):初识Python
1 Python简介 1.1 什么是Python Python是一种面向对象的解释型计算机程序设计语言,由荷兰人吉多·范罗苏姆(Guido van Rossum)于1989年发明,第一个公开发行版 ...
- Python从菜鸟到高手(18):类与方法的私有化
1. 创建自己的类 学习面向对象的第一步,就是创建一个类.因为类是面向对象的基石.Python类和其他编程语言(Java.C#等)的类差不多,也需要使用class关键字.下面通过一个实际的例子来看一下 ...
- Python从菜鸟到高手(8):print函数、赋值与代码块
1.神奇的print函数 print函数相信读者一定对它不陌生,因为在前面的章节,几乎每个例子都使用了print函数,这个函数的功能就是在控制台输出文本.不过print在输出文本时还可以进行一些设 ...
- Python从菜鸟到高手(7):字符串
1. 单引号字符串和转义符 字符串与数字一样,都是值,可以直接使用,在Python控制台中直接输入字符串,如"Hello World",会按原样输出该字符串,只不过用单引号括了 ...
随机推荐
- XSS(跨站脚本攻击)漏洞解决方案
首先,简单介绍一下XSS定义: 一 . XSS介绍 XSS是跨站脚本攻击(Cross Site Scripting)的缩写.为了和层叠样式表CSS(Cascading Style Sheets)加以区 ...
- tinypng upload一键压缩上传工具,告别人肉
地址 项目地址:tinypng-upload 有兴趣的可以玩一玩,因为平时经常会用到图片压缩,上传,如果你也觉得很繁琐的话,这个将会解决你的痛点. 关于 tinypng-upload 这是一个基于 e ...
- Python中列表
names=["Linda","Lily","Lucy","Grace","Paul"] #切片 p ...
- C#中禁止跨线程直接访问控件
C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它.此时它将会在内部调用ne ...
- LeetCode题解之Binary Tree Paths
1.题目描述 2.分析 使用递归. 3.代码 vector<string> ans; vector<string> binaryTreePaths(TreeNode* root ...
- Python创建空DataFrame及添加行数据
# 创建空DataFrame df = pd.DataFrame(columns = ['YJML','EJML','SJML','WZLB','GGXHPZ','CGMS']) # 插入数据(忽略索 ...
- python中strip()方法学习笔记
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格). 当使用strip('xxx'),只要字符串头尾有"xxx"中的一个,就会去掉,而不是符合字符串''x ...
- Jmeter中默认语言的显示
1.临时性语言的设置 即设置后只对本次使用有效,重启后恢复默认语言 选择Options—>Choose Language—>选择其他语言(例如:Chinese(Simplified)简体中 ...
- Django电商项目---完成购物车页面day4
创建购物车项目App python manage.py startapp df_cart 初始化项目: manas/urls.py manas/settings.py 创建新文件:df_cart/ur ...
- C# show和showdialog区别
简单地说他们的区别就是show弹出来的窗体和父窗体(上一个窗体的简称)是属于同一等级的,这两个窗体可以同时存在而且可以随意切换,但是showdialog弹出来的窗体就不能这样,他永远是被置顶的,如果不 ...