python中延时函数_python – 如何在Python中延迟时间?
我想知道如何在Python脚本中加时间延迟。
importtime
time.sleep(5) # Delays for 5 seconds. You can also use a float value.
这是另一个例子,大约每分钟运行一次:
importtimewhile True:
print("This prints once a minute.")time.sleep(60) # Delay for 1 minute (60 seconds).
您可以sleep()在时间模块中使用该功能。它可以采用浮动参数进行亚秒级分辨率。
fromtimeimportsleep
sleep(0.1) # Time in seconds.
在时间模块中尝试睡眠功能。
importtime
time.sleep(60)
并把它放在一个while循环中,一个语句只会在一分钟内执行…这允许你以预定义的间隔运行一个语句,无论命令花了多长时间(只要它花费不到一分钟或5或60或无论你把它设置为什么)例如,我想每分钟运行一次ping。如果我仅仅time.sleep(60)或time.sleep(45) 甚至,平安不会总是相同的时间量。这是代码:)
time.sleep(time.localtime(time.time())[5])
在[5]刚刚拉秒的的time.localtime()的返回值。
最棒的time.sleep是它支持浮点数!
importtime
time.sleep(0.1)
你可以通过简单地做到这一点:
fromtimeimportsleep# Doing stuffsleep(0.5) # Sleeping half a second (sleep() uses seconds, but you can also use floats)
# Doing stuff...
一个沉睡的发电机有点乐趣。
问题是时间延迟。它可以是固定的时间,但在某些情况下,我们可能需要从上次开始测量延迟。这是一个可能的解决方案:
自上次以来测量的延迟(定期醒来)
这种情况可能是,我们希望尽可能经常地做一些事情,我们不希望与所有的打扰last_time,next_time东西各地的我们的代码。
蜂鸣器发生器
以下代码(sleepy.py)定义了一个buzzergen生成器:
importtimefromitertoolsimportcountdefbuzzergen(period):nexttime=time.time() +periodforiincount():now=time.time()tosleep=nexttime-nowiftosleep> 0:time.sleep(tosleep)nexttime+=periodelse:nexttime=now+periodyieldi,nexttime
调用常规的buzzergen
fromsleepyimportbuzzergenimporttime
buzzer=buzzergen(3) # Planning to wake up each 3 seconds
printtime.time()buzzer.next()
printtime.time()time.sleep(2)buzzer.next()
printtime.time()time.sleep(5) # Sleeping a bit longer than usuallybuzzer.next()
printtime.time()buzzer.next()
printtime.time()
运行它我们看到:
1400102636.46
1400102639.46
1400102642.46
1400102647.47
1400102650.47
我们也可以直接在循环中使用它:
importrandomforringinbuzzergen(3):
print "now",time.time()
print "ring",ring
time.sleep(random.choice([0, 2, 4, 6]))
运行它我们可能会看到:
now1400102751.46ring(0, 1400102754.461676)now1400102754.46ring(1, 1400102757.461676)now1400102757.46ring(2, 1400102760.461676)now1400102760.46ring(3, 1400102763.461676)now1400102766.47ring(4, 1400102769.47115)now1400102769.47ring(5, 1400102772.47115)now1400102772.47ring(6, 1400102775.47115)now1400102775.47ring(7, 1400102778.47115)
正如我们所看到的,这种蜂鸣器不会过于僵硬,即使我们睡过头而且不按规定时间安排,也能让我们赶上常规的困倦时间间隔。
如何在Python中延迟时间?
在一个线程中我建议睡眠功能:
>>> fromtimeimportsleep>>>sleep(4)
这实际上暂停了操作系统调用它的线程的处理,允许其他线程和进程在休眠时执行。
将其用于此目的,或仅仅是为了延迟执行某个功能。例如:
>>> defparty_time():
... print('hooray!')
...
>>>sleep(3);party_time()hooray!
“万岁!” 我打了3秒后打印出来Enter。
使用sleep多个线程和进程的示例
再次,sleep暂停你的线程 – 它使用零处理能力。
为了演示,创建一个这样的脚本(我首先在交互式Python 3.5 shell中尝试过这个,但子进程party_later由于某种原因找不到该函数):
fromconcurrent.futuresimport ThreadPoolExecutor, ProcessPoolExecutor,as_completedfromtimeimportsleep,timedefparty_later(kind='',n=''):sleep(3)
returnkind+n+ ' party time!: ' +__name__defmain():
with ProcessPoolExecutor() asproc_executor:
with ThreadPoolExecutor() asthread_executor:start_time=time()proc_future1=proc_executor.submit(party_later,kind='proc',n='1')proc_future2=proc_executor.submit(party_later,kind='proc',n='2')thread_future1=thread_executor.submit(party_later,kind='thread',n='1')thread_future2=thread_executor.submit(party_later,kind='thread',n='2')
forfinas_completed([proc_future1,proc_future2,thread_future1,thread_future2,]):
print(f.result())end_time=time()
print('total time to execute four 3-sec functions:',end_time-start_time)
if__name__== '__main__':main()
此脚本的示例输出:
thread1 party time!:__main__
thread2 party time!:__main__
proc1 party time!:__mp_main__
proc2 party time!:__mp_main__
total time to execute four3-sec functions: 3.4519670009613037
多线程
您可以使用Timer线程对象触发稍后在单独线程中调用的函数:
>>> fromthreadingimport Timer
>>>t= Timer(3,party_time,args=None,kwargs=None)
>>>t.start()
>>>
>>>hooray!
>>>
空白行说明该功能打印到我的标准输出,我不得不点击Enter以确保我在提示。
这个方法的好处是,当Timer线程在等待时,我能够做其他事情,在这种情况下,击中Enter一次 – 在函数执行之前(参见第一个空提示)。
多处理库中没有相应的对象。你可以创建一个,但它可能不存在是有原因的。对于简单的计时器而言,子线程比整个新的子进程更有意义。
python中延时函数_python – 如何在Python中延迟时间?相关推荐
- python中延时函数_python中实现延时回调普通函数示例代码
python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...
- python中延时函数_python延时函数
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 可以使用python的time模块来实现类似于c中的sleep函数作用代码如下: ...
- python中延时函数_python延时绑定
题目: lst = [lambda x: x*i for i in range(4)] res = [m(2) for m in lst] print res 实际输出:[6, 6, 6, 6] 想要 ...
- python中延时函数_python开发--Python实现延时操作的几种方式
1. time.sleep 2. sched.scheduler 3. threading.Timer 4. 借助其他程序 celery redis延时队列 在日常的开发中,往往会遇到这样的需求,需要 ...
- python的loc函数_如何在pandas中使用loc、iloc函数进行数据索引(入门篇)
在数据分析过程中,很多时候我们需要从数据表中提取出我们需要的部分,而这么做的前提是我们需要先索引出这一部分数据.今天我们就来探索一下,如何在pandas中使用loc函数和iloc函数索引数据. 今天我 ...
- python中延时函数_详解python中实现延时回调普通函数
这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 前言 ...
- python调用js库中的函数_Python 调用JS文件中的函数
Python 调用JS文件中的函数 1.安装PyExecJS第三方库 2.导入库:import execjs 3.调用JS文件中的方法 Passwd = execjs.compile(open(r&q ...
- python中property函数_python 邮件表格Python中property函数用法实例分析
本文实例讲述了Python中property函数用法.分享给大家供大家参考,具体如下: 通常我们在访问和赋值属性的时候,都是在直接和类(实例的)的__dict__打交道,或者跟数据描述符等在打交道.但 ...
- python怎么创建函数_如何在python中创建自己的map()函数
调用函数时,请使用星号*: def mapper(func, *sequences): result = [] if len(sequences) > 0: minl = min(len(sub ...
最新文章
- 参加java培训后,就业方向有哪些
- android编程fragment,Android中关于FragmentA嵌套FragmentB的问题
- jsp里面java和js交互_jsp与js交互实例 | 学步园
- C++ Primer 5th笔记(chap 16 模板和泛型编程)模板实参推断
- opengl加载显示3D模型ogex类型文件
- POJ2560-雀斑(Freckles)【图论,并查集,最小生成树,KURUSKAL】
- 接口测试 Seldom 2.0 - 让接口自动化测试更简单
- 【java笔记】ArrayList类的使用
- 关于忘记SYSKEY密码后清除密码操作
- 老单位领导直属领导有恩,新公司薪水给的高,怎么选?
- 【DIOCP-DEMO说明】所有演示DEMO的简要说明
- .NET Framework 4.6.1包和语言包下载
- android的sd卡分区,AndroidSD卡做磁盘分区图文教程
- Boost出现error C2678
- 达人评测 i711800h和i711375h选哪个好
- html设计应用程序,软件工程师-20个HTML5应用程序设计示例(10页)-原创力文档
- 理“ Druid 元数据”之乱
- ArduPilot之开源代码基础知识Threading概念
- 笔记本如何查看电池寿命? CMD 指令
- 运放振荡问题的个人理解