python实现按任意键继续执行程序


Posted in Python onDecember 30, 2016

在windows下写bat的时候,通过pause命令,可以暂停程序运行,例如经常见的程序会在终端提示”按任意键继续……”,用户在终端回车后程序可以接着运行,这个功能有多大用途今天暂且不说,但我觉得应该有很多人也想在python下实现这个功能,这样当自己写的python程序运行时, 突然给出这么一个提示,然后自己再来个帅气的回车,我觉得肯定给人一种非常专业的感觉,最起码自己肯定被自己迷倒了,所以今天我们就学习下这段代码,这里定义了一个函数,所以你可以嵌入到你的程序中,在任何你希望调用的地方调用它即可,使用非常的方便,代码如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import sys
import termios
def press_any_key_exit(msg):
# 获取标准输入的描述符
fd = sys.stdin.fileno()
# 获取标准输入(终端)的设置
old_ttyinfo = termios.tcgetattr(fd)
# 配置终端
new_ttyinfo = old_ttyinfo[:]
# 使用非规范模式(索引3是c_lflag 也就是本地模式)
new_ttyinfo[3] &= ~termios.ICANON
# 关闭回显(输入不会被显示)
new_ttyinfo[3] &= ~termios.ECHO
# 输出信息
sys.stdout.write(msg)
sys.stdout.flush()
# 使设置生效
termios.tcsetattr(fd, termios.TCSANOW, new_ttyinfo)
# 从终端读取
os.read(fd, 7)
# 还原终端设置
termios.tcsetattr(fd, termios.TCSANOW, old_ttyinfo)
if __name__ == “__main__”:
press_any_key_exit(“按任意键继续…”)
print ‘\n'

代码不多解释,看注释,这里要说一下termios模块,这个模块提供了一个接口可以控制tty终端的Io,它所有函数第一个参数需要一个文件描述符,可以是整型的文件描述符,也可以是个文件对象,因为它可以控制在终端的显示设置,常用场景就是用户在终端输入密码时不要显示出来,就跟我们用root登陆系统时系统给出输入密码提示符一样, 代码实现如下:

def getpass(prompt=”Password: “):
import termios, sys
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~termios.ECHO
try:
termios.tcsetattr(fd, termios.TCSADRAIN, new)
passwd = raw_input(prompt)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old)
return passwd
passwd = getpass()
print passwd

这个脚本运行会提示你输入密码,输入后会打印出刚输入的密码,给这个2个例子也是说明termios的简单用法,大家可以自己运行程序去体会下。

Python 相关文章推荐
Python语言技巧之三元运算符使用介绍
Mar 04 Python
python list语法学习(带例子)
Nov 01 Python
Python中对列表排序实例
Jan 04 Python
Python使用getpass库读取密码的示例
Oct 10 Python
python实现机械分词之逆向最大匹配算法代码示例
Dec 13 Python
Python中pandas dataframe删除一行或一列:drop函数详解
Jul 03 Python
基于python实现百度翻译功能
May 09 Python
pytorch索引查找 index_select的例子
Aug 18 Python
Python多线程及其基本使用方法实例分析
Oct 29 Python
python with (as)语句实例详解
Feb 04 Python
Python面向对象实现方法总结
Aug 12 Python
Django多数据库联用实现方法解析
Nov 12 Python
详解python3实现的web端json通信协议
Dec 29 #Python
Python正则表达式如何进行字符串替换实例
Dec 28 #Python
Python写的一个定时重跑获取数据库数据
Dec 28 #Python
Python 实现文件的全备份和差异备份详解
Dec 27 #Python
Python Queue模块详细介绍及实例
Dec 27 #Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 #Python
Python 递归函数详解及实例
Dec 27 #Python
You might like
PHP 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
php+mysql 实现身份验证代码
2010/03/24 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
在react中使用vuex的示例代码
2018/07/30 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
Python中zip()函数用法实例教程
2014/07/31 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
Linux如何为某个操作添加别名
2013/03/01 面试题
结婚喜宴主持词
2014/03/14 职场文书
小露珠教学反思
2014/04/30 职场文书
法人身份证明书
2014/10/08 职场文书
部队2014年终工作总结
2014/11/27 职场文书
费用申请报告范文
2015/05/15 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python