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 ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
Jun 29 Python
python实现堆和索引堆的代码示例
Mar 19 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 Python
Python3实现的反转单链表算法示例
Mar 08 Python
python修改文件内容的3种方法详解
Nov 15 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
keras模型保存为tensorflow的二进制模型方式
May 25 Python
Python3爬虫中Selenium的用法详解
Jul 10 Python
浅谈python 类方法/静态方法
Sep 18 Python
利用django创建一个简易的博客网站的示例
Sep 29 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 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
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
js仿微信抢红包功能
2020/09/25 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
Js面试算法详解
2018/04/08 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
Python回调函数用法实例详解
2015/07/02 Python
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
Python中的默认参数实例分析
2018/01/29 Python
python requests 测试代理ip是否生效
2018/07/25 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
环保倡议书500字
2014/05/15 职场文书
工作目标责任书
2014/07/23 职场文书
2014年学生会工作总结
2014/11/07 职场文书
2014小学年度工作总结
2014/12/20 职场文书
公务员政审个人总结
2015/02/12 职场文书
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB