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的Twisted框架实现一个简单的服务器
Apr 16 Python
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
Apr 16 Python
使用SAE部署Python运行环境的教程
May 05 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
对Python 2.7 pandas 中的read_excel详解
May 04 Python
Python干货:分享Python绘制六种可视化图表
Aug 27 Python
Python 加密与解密小结
Dec 06 Python
python实现列表中最大最小值输出的示例
Jul 09 Python
Django模板Templates使用方法详解
Jul 19 Python
python实现图像拼接功能
Mar 23 Python
Jupyter notebook如何实现指定浏览器打开
May 13 Python
python munch库的使用解析
May 25 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
python爬虫增加访问量的方法
2019/08/22 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
CSS3 文字动画效果
2020/11/12 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
报效祖国演讲稿
2014/09/15 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
董事长助理岗位职责
2015/02/11 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
我的收音机情缘
2022/04/05 无线电
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL