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之从格式化表达式到方法
Sep 28 Python
约瑟夫问题的Python和C++求解方法
Aug 20 Python
Python中数字以及算数运算符的相关使用
Oct 12 Python
快速查询Python文档方法分享
Dec 27 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
Python 导入文件过程图解
Oct 15 Python
Python多线程及其基本使用方法实例分析
Oct 29 Python
python模块如何查看
Jun 16 Python
python入门教程之基本算术运算符
Nov 13 Python
PyCharm 光标变成黑块的解决方式
Feb 06 Python
opencv实现图像几何变换
Mar 24 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提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
浅析PHP文件下载原理
2014/12/25 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
php将html转为图片的实现方法
2017/05/19 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
js中日期的加减法
2015/05/06 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
JSONP基础知识详解
2017/03/19 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
js实现随机8位验证码
2020/07/24 Javascript
详解Vue3中对VDOM的改进
2020/04/23 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
python和shell变量互相传递的几种方法
2013/11/20 Python
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
Python中的pprint折腾记
2015/01/21 Python
python传递参数方式小结
2015/04/17 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
艺术应用与设计个人的自我评价
2013/11/23 职场文书
车间组长岗位职责
2013/12/20 职场文书
渡河少年教学反思
2014/02/12 职场文书
2014植树节活动总结
2014/03/11 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
优秀家长事迹材料
2014/05/17 职场文书
优秀员工演讲稿
2014/05/19 职场文书
教师个人自我评价
2015/03/04 职场文书
人代会简报
2015/07/21 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL