Python input输入超时选择默认值自动跳过

article/2025/10/3 16:07:28

Python input输入超时选择默认值自动跳过

Python input 等待键盘输入,超时选择默认值,释放input,之后重新进入等待键盘输入状态,直到用户输入可用数据。

一、调用 func_timeout 模块实现超时控制

1、安装 func_timeout 库
pip install func_timeout
2、使用 func_timeout 库中的 func_set_timeout 装饰器设置超时时间,程序超时后会抛出func_timeout.exceptions.FunctionTimedOut异常
import func_timeout@func_timeout.func_set_timeout(3)  #超时时间为 3s
def Input_task():print('请输入:')return input()
3、使用 try…except 捕捉异常
def task():try:s = Input_task()print('成功输入')except func_timeout.exceptions.FunctionTimedOut as e:s = '默认值!'print(s)
4、问题

下面的代码中将 task() 函数放进 while 循环,出现超时异常后,手动输入无效

import func_timeout
from func_timeout import func_set_timeouttimeout = 4
@func_set_timeout(timeout)
def Input_task():print('请输入:')return input()def task():try:s = Input_task()print('成功输入')run_flag = Falseexcept func_timeout.exceptions.FunctionTimedOut as e:s = '默认值!'run_flag = Trueprint(s)return run_flag   #如果成功输入将退出 while 循环run_flag = True
while run_flag:run_flag = task()

运行结果:

在这里插入图片描述

小结

该模块只能进行一次超时控制,当程序第一次抛出超时异常后,即使用户输入数据也无济于事

二、使用 Timer 定时器和模拟键盘输入实现超时控制

1、Timet 定时器

是Thead类的一个子类,可用于在指定时间间隔后启动线程

# 导入线程模块
import threadingtimer = threading.Timer(interval, function, args=None, kwargs=None)

参数介绍:

interval — 定时器间隔,间隔多少秒之后启动定时器任务(单位:秒);

function — 线程函数;

args — 线程参数,可以传递元组类型数据,默认为空(缺省参数);

kwargs — 线程参数,可以传递字典类型数据,默认为空(缺省参数)

2、模拟键盘输入
(1) PyUserInput模块安装
pip install PyUserInput

python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中

(2) 键盘实例化
from pykeyboard import PyKeyboardk = PyKeyboard()#键盘的实例 k
(3) 键盘操作说明

单个按键

k.type_string(‘Hello, World!’)	#模拟键盘输入字符串
k.press_key(‘H’)	#模拟键盘按H键
k.release_key(‘H’)	#模拟键盘松开H键
k.tap_key(“H”)	#模拟点击H键
k.tap_key(‘H’,n=2,interval=5)	#模拟点击H键,2次,每次间隔5秒
k.tap_key(k.function_keys[5])	#点击功能键F5
k.tap_key(k.numpad_keys[5],3)	#点击小键盘5,3次

组合键(例如同时按alt+tab键盘 )

k.press_key(k.alt_key)	#按住alt键
k.tap_key(k.tab_key)	#点击tab键
k.release_key(k.alt_key)	#松开alt键
3、代码实现
from pykeyboard import PyKeyboard
import threadingdef Input_simulate(timeout):if not Input_event.is_set():    key = PyKeyboard()#键盘的实例 keykey.type_string('no input')  #模拟键盘输入字符串key.press_key(key.enter_key)  #模拟按下 ENTER 键key.release_key(key.enter_key)  #模拟释放 ENTER 键global timer  #将定时器的句柄定义成一个全局变量,这样做的好处是,创建的定时器进程和实例不会堆积,而是覆盖,避免不必要的内存占用。Input_event.clear()timer = threading.Timer(timeout, Input_simulate, args=(timeout,))timer.start()msg = input('请输入你的信息:')if msg == 'no input':passelse:print(msg)    #打印输入信息timer.cancel()  #取消定时器的调度,当用户输入数据时将停止计时,程序退出运行if __name__ == '__main__':Input_event = threading.Event()Input_event.set()Input_simulate(5)

运行结果:

在这里插入图片描述

小结

该代码等待键盘输入,超时选择默认值,释放input,之后重新进入等待键盘输入状态,直到用户输入可用数据。


http://chatgpt.dhexx.cn/article/YOSZDmhe.shtml

相关文章

html文本框设置默认值,HTML input文本框设置和移除默认值

这里想实现的效果是:设置和移除文本框默认值,如下图鼠标放到文本框中的时候,灰字消失。 1.可以用简单的方式,就是给input文本框加上onfocus属性,如下代码: οnfοcusif(this.value"请输入关键字进行搜…

使用js代码修改input的默认值

内容&#xff1a;使用js代码来对input设置的默认值进行修改&#xff0c;点击按钮修改input的默认值 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><scrip…

html设置input默认值,使用jQuery给input标签设置默认值

由于项目需求&#xff0c;简单地写了一个input默认值设置&#xff0c;实现给.form中所有的input设置默认值的方法。input默认值设置 $(function() { //集体调用 $(".form input").each(function(){ $(this).setDefauleValue(); }); //单个调用 $("#key").s…

antd 给input设置值_Antd 中 Input 组件默认值的显示

1、input标签中有placeholder可以显示默认值 但是有少量样式的问题(字体颜色会淡一点) placeholder属性 2、用Input组件中的defaultValue属性 defaultValue属性 3、form表单组件中的initialValue参数 注意&#xff1a;当Form组件和Input组件一起用时&#xff0c;defaultValue在…

Ant Design React中 Form.Item 中设置Select,Input.TextArea,Input默认值

<Formref{this.formRef}name"dynamic_rule"initialValues{{ one: 0, two: 0, three: "0", desc:"尝试一下" }}></Form>在Form 使用initialValues{{ name:"value" }}>

踩坑 antd Form表单获取input默认值失败,Form表单校验input 必填 默认值为undefined

问题描述&#xff1a;1&#xff0c;跳转页面后&#xff0c;通过url传参&#xff0c;将参数自动回填到下一个页面的input输入框里&#xff0c;打开页面后&#xff0c;input成功显示回写内容。2&#xff0c;为FormItem添加必填校验required:true。3&#xff0c;提交表单&#xff…

js压缩混淆加密工具,解密工具

js压缩混淆加密有什么不同 压缩 compress&#xff1a; 去掉空格&#xff0c;换行&#xff0c;注释等&#xff0c;格式紧凑&#xff0c;节约存储空间。 混淆 obfuscate/garble&#xff1a;替换变量名或方法名&#xff0c;让js不容易看懂。也做到了压缩的效果。 加密 encrypt&…

对JS文件中每个函数单独混淆加密

自动化脚本&#xff1a;单独对JS代码中的每个函数进行混淆加密 用自动化脚本工具&#xff0c;对JS代码中的每个函数分别进行单独混淆加密。这样加密得到的JS代码&#xff0c;比直接对整个JS代码进行混淆加密&#xff0c;效果要好很多。所谓“好”体现在&#xff1a;加密结果安…

js常见混淆加密技术

下面&#xff0c;我将通过一个案例来演示如何使用JavaScript混淆加密技术来保护你的网站。 假设你有一个网站&#xff0c;其中包含一个登录页面&#xff0c;该页面的JavaScript代码如下所示&#xff1a; function login(username, password) {if (username "admin"…

JS混淆原理

JS混淆原理 •eval 加密 通过eval去执行函数通常和webpack打包拼接一起使用• 变量混淆 ​ 变量名混淆&#xff0c;十六进制替换&#xff0c;随机字符串替换• 属性加密 ​ 一套组合算法&#xff0c;将属性加密生成• 控制流平坦化 逻辑处理块统一加上前驱逻辑块&#xff0c…

在线Javascript加密混淆工具

在线Javascript加密混淆工具 在线Javascript加密混淆工具 在线Javascript Obfuscator 使 javascript 代码更难阅读以保护它。该工具提供了四种使用工具。你可以压缩或格式化你的代码&#xff0c;也可以使用 eval 混淆你的代码并对其进行解码。混淆的 javascript 代码在你的工作…

JavaScript代码混淆加密教程 JS无解加密

正文: 今天给大家写一篇原创JS加密教程&#xff0c;大家都知道由于JS属于前端的内容&#xff0c;任何人都可以直接对代码进行查看&#xff0c;直接暴漏JS代码&#xff0c;自己的劳动成果无法保护就算了&#xff0c;别人还可以直接复制你的代码变为自己的。 所以说&#xff0c…

Js混淆代码、加密数据工具-JShaman

官网&#xff1a;JShaman - 专业的JS代码混淆加密平台 - JS混淆、JS加密 由于客户信息安全检测到系统源码没有加密&#xff0c;容易被仿造&#xff0c;故建议对重要js文件进行加密。

js混淆加密,通过混淆Js代码让别人(很难)无法还原

1、为什么需要js混淆 在web系统发展早期&#xff0c;js在web系统中承担的职责并不多&#xff0c;只是简单的提交表单&#xff0c;js文件非常简单&#xff0c;也不需要任何的保护。 随着js文件体积的增大&#xff0c;为了缩小js体积&#xff0c;加快http传输速度&#xff0c;开始…

某网站JS加密、OB混淆与CSS反爬实战分析

1. 写在前面 最近一段时间接触了一些小说网站的业务。发现很多的小说网站&#xff0c;甚至一些小站它们的安全防护措施做的都很到位&#xff01;例如上次说到的的五秒盾也是存在于一个小说小站。今天要讲的这个网站它集JS加密、ob混淆、CSS反爬于一体 目标站点&#xff1a; aH…

前端JavaScript代码混淆加密原理介绍

因为JavaScript大都是运行在浏览器端,这就导致任何人都可以直接对网站的代码进行查看&#xff0c;如果代码没有进行任何处理就会导致直接暴露源码&#xff0c;他人便可轻而易举的复制你的劳动成果,但是由于没有纯粹的加密方案,所以能做的就是让代码变得更加的难以阅读,他人难以…

JS常见加密混淆一览

参考文章&#xff1a; https://www.cnblogs.com/guyouyin123/p/13804700.html 常见js混淆加密 JSFUCKAAEncodeJJEncode JSFUCK 特征为由[]{}()!组成的看不懂的代码 AAEncode 俗称aa混淆&#xff0c;特征为网络表情符号 JJEncode jj混淆&#xff0c;特点是特别多的$混淆 虽然…

JS常见加密混淆方式

目录 前端js常见混淆加密保护方式 eval方法等字符串参数emscriptenWebAssemblyjs混淆实现 JSFuckAAEncodeJJEncode代码压缩变量名混淆字符串混淆自我保护&#xff0c;比如卡死浏览器控制流平坦化僵尸代码注入对象键名替换禁用控制台输出调试保护&#xff0c;比如无限Debug,定时…

JS逆向之常见编码和混淆加密方式(一)

一般情况下&#xff0c;js的代码加密用来加密混淆代码&#xff0c;降低代码的可读性&#xff0c;如果一段没有经过任何加密混淆的代码&#xff0c;很容易被第三方或者脚本破解利用&#xff0c;引发许多的安全问题&#xff0c;本文将从以下多个角度讲解&#xff0c;代码加密的一…

最常用的js混淆加密解

JS混淆加密是一种用于保护JS代码的技术&#xff0c;它能够将代码变得难以理解和修改&#xff0c;从而提高代码的安全性。但是&#xff0c;当我们需要修改和维护这些代码时&#xff0c;我们就会面临困难。因此&#xff0c;在某些情况下&#xff0c;我们需要解这些JS代码。 下面…