暂停 python 脚本等待按键

2023-12-06

我有一个相对简单的脚本和一个可能简单的问题。 在互联网上,我收集了一些关于如何使用直接按键作为 python 代码中的输入的解决方案。我更喜欢这些而不是 raw_input,因为它感觉更快。就像如果我有一个包含 3 个选项的菜单,并且每个选项都有 3 个选项,我可以轻松地按键盘上的 3 然后 2 来到达我需要去的地方。

代码是:

import keyboard
import time

def mainmenu():
    while(True):
        print ('1. Scan')
        print ('2. Ping')
        print ('3. Exit')

        if keyboard.is_pressed('1'):
            print ('Option 1\n')
        elif keyboard.is_pressed('2'):
            print ('Option 2\n')
        elif keyboard.is_pressed('3'):
            print ('Exiting\n')
            exit(0)
        else:
            print ('none of the specified options were chosen')
            time.sleep(0.3)
            exit(0)
mainmenu()

我只是想要一些可以暂停代码的东西,让我可以按键。
我不能使用time.sleep()因为某些原因。它也不喜欢在其之前或之后的瞬间进行输入。
如果我能得到一个函数来做这件事,这样我就可以在其他地方输入它,那就太棒了。

如果最后没有 else 语句,那么 while 循环就会继续进行。
如果我在 while 循环中没有它,脚本会在 1 秒内打印选项,然后默认为 else,因为我在 1 秒内没有按下任何键。
我知道它有效,因为如果我取出 else 语句,当它一遍又一遍地发送选项时,我按 3,IDLE 会询问我是否要在脚本运行时终止它。


Use keyboard.read_key()因为它将阻止其余代码的执行,直到发生键盘事件,然后返回该事件的名称,或者如果缺少,则返回其扫描代码。

import keyboard
import time

def mainmenu():
    print ('1. Scan')
    print ('2. Ping')
    print ('3. Exit')

    while(True):
        a = keyboard.read_key()

        if a == '1' or a == '2':
            print("Option {} was pressed\n".format(a))
        elif a == '3':
            print("Exiting\n")
            exit(0)
        else:
            print("None\n")
            exit(0)

        time.sleep(0.3)

mainmenu()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

暂停 python 脚本等待按键 的相关文章

  • 如何屏蔽 PyTorch 权重参数中的权重?

    我正在尝试在 PyTorch 中屏蔽 强制为零 特定权重值 我试图掩盖的权重是这样定义的def init class LSTM MASK nn Module def init self options inp dim super LSTM
  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 使用 Django 的 post_save() 信号

    我有两张桌子 class Advertisement models Model created at models DateTimeField auto now add True author email models EmailField
  • 如何更改充当按钮的范围的文本

    我正在为自定义 Web 应用程序编写自动化测试 我遇到了无法更改跨度文本的问题 我尝试过使用 driver execute script 但没有运气 如果我更好地了解 javascript 这确实会有帮助 据我所知 您无法单击跨度 并且列表
  • 用 Python 编写一个无操作或虚拟类

    假设我有这样的代码 foo fooFactory create 由于种种原因 fooFactory create 可能无法创建实例Foo 如果可以的话我想要fooFactory create 返回一个虚拟 无操作对象 这个对象应该是完全惰性
  • 获取单个方程的脚本

    在文本文件中输入 a 2 8 b 3 9 c 4 8 d 5 9 e a b f c d g 0 6 h 1 7 i e g j f h output i j 期望的输出 输出 2 8 3 9 0 6 4 8 5 9 1 7 如果输入文件名
  • 使用正则表达式解析 Snort 警报文件

    我正在尝试使用 Python 中的正则表达式从 snort 警报文件中解析出源 目标 IP 和端口 和时间戳 示例如下 03 09 14 10 43 323717 1 2008015 9 ET MALWARE User Agent Win9
  • 无法包含外部 pandas 文档 Pycharm v--2018.1.2

    我无法包含外部 pandas 文档Pycharm v 2018 1 2 例如 numpy gt http docs scipy org doc numpy reference generated module name element na
  • 将 subprocess.Popen 的输出通过管道传输到文件

    我需要启动一些长时间运行的进程subprocess Popen 并希望拥有stdout and stderr从每个自动管道到单独的日志文件 每个进程将同时运行几分钟 我想要两个日志文件 stdout and stderr 每个进程当进程运行
  • 行为:如何从另一个文件导入步骤?

    我刚刚开始使用behave http pythonhosted org behave 一个Pythonic BDD框架 使用小黄瓜语法 http docs behat org guides 1 gherkin html 行为需要一个特征 例
  • Python 中的这种赋值方式叫什么? a = b = 真

    我知道关于元组拆包 http docs python org tutorial datastructures html tuples and sequences但是当一行中有多个等号时 这个赋值被称为什么 阿拉a b True 它总是让我有
  • 使用 python 将文本发送到带有逗号分隔符的列

    如何使用分隔符 在 Excel 中将一列分成两列 并使用 python 命名标题 这是我的代码 import openpyxl w openpyxl load workbook DDdata xlsx active w active a a
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • 在pycharm中调试python代码

    这个问题类似于this https stackoverflow com questions 10240018 how to use pycharm to debug python script一 我正在尝试调试pyethapp https
  • 是否可以写一个负的python类型注释

    这可能听起来不合理 但现在我需要否定类型注释 我的意思是这样的 an int Not Iterable a string Iterable 这是因为我为一个函数编写了一个重载 而 mypy 不理解我 我的功能看起来像这样 overload
  • Plotly:如何避免巨大的 html 文件大小

    我有一个 3D 装箱模型 它使用绘图来绘制输出图 我注意到 绘制了 600 个项目 生成 html 文件需要很长时间 文件大小为 89M 这太疯狂了 我怀疑可能存在一些巨大的重复 或者是由单个项目的 add trace 方法引起的 阴谋 为
  • Python模块单元测试的最佳文件结构组织?

    遗憾的是 我发现有太多方法可以在 Python 中保存单元测试 而且它们通常没有很好的文档记录 我正在寻找一种 终极 结构 它可以满足以下大部分要求 be discoverable by test frameworks including
  • Scrapy 蜘蛛无法工作

    由于到目前为止没有任何效果 我开始了一个新项目 python scrapy ctl py startproject Nu 我完全按照教程操作 创建了文件夹和一个新的蜘蛛 from scrapy contrib spiders import
  • 将 Scikit-Learn OneHotEncoder 与 Pandas DataFrame 结合使用

    我正在尝试使用 Scikit Learn 的 OneHotEncoder 将 Pandas DataFrame 中包含字符串的列替换为 one hot 编码的等效项 我的下面的代码不起作用 from sklearn preprocessin
  • 具有指定置信区间的 Seaborn 条形图

    我想在 Seaborn 条形图上绘制置信区间 但我已经计算出置信区间 如何让 Seaborn 绘制我的置信区间而不是尝试自行计算它们 例如 假设我有以下 pandas DataFrame x pd DataFrame Group 1 0 5

随机推荐

  • mime_content_type 仅针对 css 和 js 文件返回 text/plain

    我遇到了 PHP 的 mime content type 这个奇怪的问题 它工作正常 除了 CSS 和 JavaScript 文件 它返回 text plain PHP 的默认 mime 设置为 text html 修改 mime type
  • 如果没有对象安全,Rust 会失去哪些安全保证?

    我试图理解对象安全的想法 我从文档中知道对象安全是以下内容 该特质并不要求这样Self Sized 它的所有方法都是对象安全的 如果对象安全所需的两个条件之一被放弃 哪些事情可能会导致安全 Rust 所提供的安全保证失败 From 自我满足
  • any() 函数检查两个 TRUE 而不是一个

    The any 来自基 R 的函数检查是否 给定一组逻辑向量 至少其中一个值是否为真 有没有办法使用any 函数 但让它检查是否至少有两个值是 true 而不是只有一个 如果没有 是否有另一个功能可以用来执行类似的操作 我们可以用 sum
  • 我可以告诉 javac 忽略缺少 `import foo.Bar` 吗?

    我正在使用反射来加载MyClass class 外部文件 在运行时 MyClass class使用图书馆Bar 这意味着我需要放置import foo Bar 在文件的顶部 但是 那Bar库已经在主类加载中加载MyClass 有没有办法让我
  • 未连接到调试器时,快速应用程序恢复在 WP8.1 上崩溃

    我正在使用 MVVM Light 开发 WP8 1 应用程序 默认情况下会激活快速应用程序恢复 这很棒 因为我想将其包含在应用程序中 当应用程序从 Visual Studio 启动时 它会按预期工作 然而 当应用程序直接在设备上启动时 就会
  • str 对象不可调用 python

    我尝试四处寻找答案 但是这里的问题要么似乎很高级 我是Python新手 要么是因为重新定义了我在脚本中无法理解的含义 这是代码 a float input Enter the length in inches b float input E
  • 是否可以让 css 选择器影响页面中的其他元素而不使用 javascript? [复制]

    这个问题在这里已经有答案了 例如 我想让两个文本框在其中一个获得焦点时具有相同的样式 div class divTxt div
  • Python 逆字母顺序

    我有这个输出 3 one 2 was 2 two 1 too 1 racehorse 1 a 我需要将具有相同编号的元组按相反的字母顺序放置在列表中 这是我的代码 def top5 words text split text text sp
  • html body ondblclick 获取被点击的元素

    所以在我的 html 中我有这部分 div dasd div div dasda div 在 javascript 中 该函数是 function myfunc do stuff here 我想知道在 myfunc 内部 html 主体的哪
  • 在 Get-ChildItem 中指定 *.xls 过滤器也会返回 *.xlsx 结果

    我有一个包含 xls xlsx 和 xlsm 文件的文件夹 并且想仅过滤 xls 文件 为什么以下行不能按我的预期工作 我看到 xls xlsx 和 xlsm 结果 Get ChildItem Get Location Filter xls
  • 验证错误消息有效时不会隐藏

    更新2 我发现输入的标题由于某种原因被显示为错误消息 我使用忽略标题 true以确保标题不会显示为错误消息 However 现在我的新问题是 一旦我输入有效的电子邮件地址 错误消息仍然不会消失 如何修复验证错误消息 使其在输入字段有效时隐藏
  • Ionic2 的字体很棒

    如何使用 Font Awesome 图标
  • 有没有办法判断传入的变量是引用类型还是值类型?

    在Swift中 有没有办法通过代码判断传入的变量是引用类型还是值类型 例如 元组是值类型还是引用类型 一切是一个值类型 除了 一个类的实例 一个功能 一个数组 其工作方式很奇怪 它通过引用传递 但如果它是可变的并且项目数量发生更改 则可以与
  • 如何找到加载缓慢的 SAPUI5 应用程序的加载瓶颈

    我正在构建一个自定义 SAPUI5 应用程序 其中包含七个图表 sap viz ui5 controls VizFrame 在页面的标题内容中 嵌套在sap suite ui commons ChartContainer 和网格表 sap
  • 脚本循环遍历目录中的文件

    我有以下代码 它使用我需要的数据从 shp file 创建我需要的 txt 文件 我有一个名为 profile 的文件夹 其中包含一些名为 profil1 shp profil2 shp profil3 shp 等 的形状文件 我想知道如何
  • 如何在Spring-kafka中实现ConsumerSeekAware?

    我正在尝试使用 KafkaListener 实现消费者 我正在使用Spring2 3 7版本 这是到目前为止我的代码 public class SampleListener KafkaListener topics test topic c
  • 从命令行编译适用于 iOS 9 的 C 库,Xcode 7-beta 2

    我在使用最新的 Xcode 7 beta clang 编译适用于 iOS 9 的 C 库 gmp 时遇到问题 我正在尝试生成位码以使 Xcode 中的所有警告停止 并且我想以位码生成这些库 但是 我什至无法首先编译该库 configure
  • MonoTouch:在 Retina 显示屏上调整色调时外观图像尺寸加倍

    我正在使用此代码设置导航栏的背景 该代码在视网膜和非视网膜显示器中效果很好 有一个 2x 和普通图像 所以 一切都好 UINavigationBar Appearance SetBackgroundImage GetImage ImageT
  • Web 服务 - Xml 包含在派生类而不是基类中?

    我使用抽象类作为 Web 服务调用中的参数 目前 我在基类中包含派生类的 XmlInclude 如下所示 XmlInclude typeof DerivedClass public abstract class BaseClass 但是 我
  • 暂停 python 脚本等待按键

    我有一个相对简单的脚本和一个可能简单的问题 在互联网上 我收集了一些关于如何使用直接按键作为 python 代码中的输入的解决方案 我更喜欢这些而不是 raw input 因为它感觉更快 就像如果我有一个包含 3 个选项的菜单 并且每个选项