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",会按原样输出该字符串,只不过用单引号括了 ...
随机推荐
- Unity 4.6 GUI
一起来窥探Unity的下一代GUI 预览 UI组件 UI结构 Canvas Button Selection List(滑动列表)
- 5.2Python函数(二)
目录 目录 前言 (一)偏函数 ==1.说明== ==2.原代码== ==3.显示效果== (二)高阶函数 ==1.说明== ==2.源代码== ==3.运行效果== (三)返回值函数 ==1.说明= ...
- Android 用webService产生java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive错误的解决(转)
在做android Webservice开发的时候一般情况下大家接受webservice服务器返回值的时候都是使用 SoapObject soapObject = (SoapObject) enve ...
- C#的static
1.static意思是静态,可以修饰类.字段.属性.方法2.标记为static的就不用创建实例对象调用了,可以通过类名直接点出来3.static三种用法:4.用于变量前,表示每次重新使用该变量所在方法 ...
- attachBaseContext
at android.content.ContextWrapper.attachBaseContext(ContextWrapper.java:66) at android.view.ContextT ...
- 统计硬币 HDU - 2566 (三种解法:线性代数解法,背包解法,奇思妙想解法 >_< )
题号放这里自己去找吧. HDU-2566 这题最开始用的dp,然后,被同学用奇思妙想过了. >_< 开心! -_- !! 然后,被我线性代数给过了. 方法一:dp 将其化为01背包,只 ...
- Excel中mod函数的使用方法
1.mod函数的含义 1 1.mod函数是一个用来求余数函数,返回两数相除的余数.mod函数在Excel中一般不单独使用,经常和其他函数组合起来使用. END 2.mod函数的语法格式 1 2.mod ...
- 详解PHP操作Memcache缓存技术提高响应速度的方法
本文转载http://blog.csdn.net/zhihua_w 不错的博客,仅供本人学习之用 一般来说,如果并发量不大的情况,使不使用缓存技术并没有什么影响,但如果高并发的情况,使用缓存技术就显 ...
- laravel的启动过程---摘自网络博客个人学习之用
如果没有使用过类似Yii之类的框架,直接去看laravel,会有点一脸迷糊的感觉,起码我是这样的.laravel的启动过程,也是laravel的核心,对这个过程有一个了解,有助于得心应手的使用框架,希 ...
- 通过SQL Server 2008 访问Oracle 10g
原文地址:http://www.cnblogs.com/gnielee/archive/2010/09/07/access-oracle-from-sqlserver.html 之前写过一篇关于SQL ...