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实现中文输出的两种方法
May 09 Python
Python环境变量设置方法
Aug 28 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
Mar 16 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
简单了解python单例模式的几种写法
Jul 01 Python
PyTorch使用cpu加载模型运算方式
Jan 13 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 Python
python归并排序算法过程实例讲解
Nov 04 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 Python
python实现图片,视频人脸识别(opencv版)
Nov 18 Python
4种非常实用的python内置数据结构
Apr 28 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
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
laravel安装和配置教程
2014/10/29 PHP
php文件缓存方法总结
2016/03/16 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
jqgrid 表格数据导出实例
2013/11/21 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
pandas将numpy数组写入到csv的实例
2018/07/04 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
Python 多进程、多线程效率对比
2020/11/19 Python
python基于opencv 实现图像时钟
2021/01/04 Python
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
大二学生学习个人自我评价
2014/01/19 职场文书
新闻报道策划方案
2014/06/11 职场文书
普通话宣传标语
2014/06/26 职场文书
七夕活动策划方案
2014/08/16 职场文书
走群众路线剖析材料
2014/10/09 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python
在python中实现导入一个需要传参的模块
2021/05/12 Python
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
Python matplotlib绘制雷达图
2022/04/13 Python