在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实现按任意键继续执行程序相关推荐

  1. python实现按回车键继续程序_python实现按任意键继续执行程序

    在windows下写bat的时候,通过pause命令,可以暂停程序运行,例如经常见的程序会在终端提示"按任意键继续--",用户在终端回车后程序可以接着运行,这个功能有多大用途今天暂 ...

  2. python 直接退出程序_python 退出程序 Python程序运行后直接退出

    python中exit(0)和exit(1)的用法和区别, exit(0):表示程序正常退出. exit(1):表示程序异常退出. 二.特点不同 exit(0):把exit用在main内的时候无论ma ...

  3. 下列快捷键中能中断python程序运行的是_What is very important

    What is very important 答:all of the above 下列符合"中和"精神的是() 答:风调雨顺 宠辱不惊 为了解某高校大学生体育锻炼情况,在该学校随 ...

  4. 下列快捷键中能够中断python程序运行的是_例题学习

    105.关于Python循环结构,以下选项中描述错误的是 ( C ) A: Python通过for.while等保留字提供遍历循环和无限循环结构 B: break用来跳出最内层for或者while循环 ...

  5. python程序运行的遇到的问题(一)

    python程序运行的遇到的问题(一) 绘制词云发生了报错问题 文章目录 python程序运行的遇到的问题(一) 绘制词云发生了报错问题 Python报错:OSError: cannot open r ...

  6. python程序运行键_python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  7. python程序运行按什么键_太惨!学Python方法用错,直接从入门到放弃!

    原标题:太惨!学Python方法用错,直接从入门到放弃! 从你开始学习编程的那一刻起,就注定了以后所要走的路-从编程学习者开始,依次经历实习生.程序员.软件工程师.架构师.CTO等职位的磨砺:当你站在 ...

  8. python按任意键退出_Python实现按任意键继续/退出的功能

    前言 要实现该功能,需要的就是暂停程序.等待并捕捉用户的一个键盘输入,然后继续执行.Python 有内建的库能帮我们实现该功能,不过要区别对待 Windows 和 Linux. msvcrt中的 ge ...

  9. python输出运行时间表_Python编程第十二课 了解程序运行的时间

    了解了程序如何运行,我们就可以让我们写的程序变得更快. 介绍 在前面很长一段时间,我们学习建立一个搜索索引,它可以通过一次一次地查看每个条目来响应查询. 当搜索索引检查关键字与我们要找的词相匹配时,就 ...

最新文章

  1. Linux下遍历指定目录的C++实现
  2. JAVA .xml 配置和 .properties 配置
  3. [BZOJ 1588][HNOI 2002] 营业额统计
  4. 一个妹子的美团面试经历,成功拿到 Offer
  5. python随机生成k个不重复的随机数_python 生成不重复的随机数的代码
  6. 007--C++动态内存(数组)
  7. 如何使用puttygen基于pem文件生成可供登录的ppk文件
  8. linux系统编程练手项目,精选 22 个 C++ 项目,编程小白练手首选!
  9. qq数据泄露_有哪些良好的上网习惯,可以避免隐私泄露?
  10. 【Kafka】Kafka 增量 Rebalancing: Support and Policies
  11. chkconfig、mount、shutdown
  12. Xcode Developer Tools
  13. UltraEdit (最新版[25.10.0.62])安装破解
  14. 【安全知识分享】PPTX|精益安全管理(130页)(附下载)
  15. 基于服务号的微信扫码关注公众号登录网站原理分析
  16. 鼠标计算机英语怎么说,计算机鼠标器,computer mouse,音标,读音,翻译,英文例句,英语词典...
  17. RecyclerView notifyDataSetChanged 导致图片闪烁的原因
  18. 球半足球分析,瑞典超:哥德堡 VS 代格福什 7月5日
  19. JavaScript下雨效果
  20. easyUI折叠表格-默认展开操作-去除扩展符号(+)-清除滚轮--实例加效果图

热门文章

  1. 语义分割和实例分割概念
  2. linux怎么修改内存缓存,Linux内存、缓存、Swap等修改
  3. 使用与不使用@RequestBody注解的区别
  4. Java8 改进的匿名内部类:
  5. 20155324 《信息安全系统设计基础》课程总结
  6. 使用实例 ---- 使用NUnit在.Net编程中进行单元测试
  7. js 基于函数伪造的方式实现继承
  8. Java基础知识强化21:Java中length、length()、size()区别
  9. ajax data参数
  10. Asp.net AJAX JavaScript 基本类型扩展(7)——String 类型及其扩展