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图像常规操作
Nov 11 Python
python实现快速排序的示例(二分法思想)
Mar 12 Python
python opencv 图像尺寸变换方法
Apr 02 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
Python使用googletrans报错的解决方法
Sep 25 Python
python super的使用方法及实例详解
Sep 25 Python
python小白学习包管理器pip安装
Jun 09 Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 Python
用python修改excel表某一列内容的操作方法
Jun 11 Python
python元组打包和解包过程详解
Aug 02 Python
Python之Matplotlib绘制热力图和面积图
Apr 13 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操作数组相关函数
2011/02/03 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
JavaScript表单常用验证集合
2008/01/16 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
jquery延迟对象解析
2016/10/26 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
python 字典修改键(key)的几种方法
2018/08/10 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
安全生产先进个人材料
2014/02/06 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
护士找工作求职信
2014/07/02 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
优秀团员个人总结
2015/02/26 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
小学数学教学反思范文
2016/02/16 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android