我想知道如何在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中延迟时间?相关推荐

  1. python中延时函数_python中实现延时回调普通函数示例代码

    python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...

  2. python中延时函数_python延时函数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 可以使用python的time模块来实现类似于c中的sleep函数作用代码如下: ...

  3. 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] 想要 ...

  4. python中延时函数_python开发--Python实现延时操作的几种方式

    1. time.sleep 2. sched.scheduler 3. threading.Timer 4. 借助其他程序 celery redis延时队列 在日常的开发中,往往会遇到这样的需求,需要 ...

  5. python的loc函数_如何在pandas中使用loc、iloc函数进行数据索引(入门篇)

    在数据分析过程中,很多时候我们需要从数据表中提取出我们需要的部分,而这么做的前提是我们需要先索引出这一部分数据.今天我们就来探索一下,如何在pandas中使用loc函数和iloc函数索引数据. 今天我 ...

  6. python中延时函数_详解python中实现延时回调普通函数

    这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 前言 ...

  7. python调用js库中的函数_Python 调用JS文件中的函数

    Python 调用JS文件中的函数 1.安装PyExecJS第三方库 2.导入库:import execjs 3.调用JS文件中的方法 Passwd = execjs.compile(open(r&q ...

  8. python中property函数_python 邮件表格Python中property函数用法实例分析

    本文实例讲述了Python中property函数用法.分享给大家供大家参考,具体如下: 通常我们在访问和赋值属性的时候,都是在直接和类(实例的)的__dict__打交道,或者跟数据描述符等在打交道.但 ...

  9. python怎么创建函数_如何在python中创建自己的map()函数

    调用函数时,请使用星号*: def mapper(func, *sequences): result = [] if len(sequences) > 0: minl = min(len(sub ...

最新文章

  1. 参加java培训后,就业方向有哪些
  2. android编程fragment,Android中关于FragmentA嵌套FragmentB的问题
  3. jsp里面java和js交互_jsp与js交互实例 | 学步园
  4. C++ Primer 5th笔记(chap 16 模板和泛型编程)模板实参推断
  5. opengl加载显示3D模型ogex类型文件
  6. POJ2560-雀斑(Freckles)【图论,并查集,最小生成树,KURUSKAL】
  7. 接口测试 Seldom 2.0 - 让接口自动化测试更简单
  8. 【java笔记】ArrayList类的使用
  9. 关于忘记SYSKEY密码后清除密码操作
  10. 老单位领导直属领导有恩,新公司薪水给的高,怎么选?
  11. 【DIOCP-DEMO说明】所有演示DEMO的简要说明
  12. .NET Framework 4.6.1包和语言包下载
  13. android的sd卡分区,AndroidSD卡做磁盘分区图文教程
  14. Boost出现error C2678
  15. 达人评测 i711800h和i711375h选哪个好
  16. html设计应用程序,软件工程师-20个HTML5应用程序设计示例(10页)-原创力文档
  17. 理“ Druid 元数据”之乱
  18. ArduPilot之开源代码基础知识Threading概念
  19. 笔记本如何查看电池寿命? CMD 指令
  20. 运放振荡问题的个人理解

热门文章

  1. java 字符流图片_java 字节流、字符流(复制图片、复制文本)
  2. plc中异步和同步通信的介绍
  3. Python 为什么要有 pass 语句?收藏防迷路
  4. 树莓派趣味编程——从ABC到XYZ
  5. EL表达式和JSTL表达式及案例
  6. db2 - 一个bigint问题
  7. Java初学者作业——使用记事本编写Java程序
  8. 精确率、召回率、F1值
  9. java双重for循环流程图_JAVA程序逻辑中的循环结构
  10. 微信小程序云开发-两种云端数据获取方法