有一种比从0开始自己的线程更简单的方法.为您准备的Timer线程:

import threading

timer = None

def wuf ():

global timer

print "Wuf-wuf!"

timer = threading.Timer(5, wuf)

timer.start()

timer = threading.Timer(5, wuf)

timer.start()

input() # Don't exit the program

此代码将等待5秒钟,然后开始打印“Wuf-wuf!”每5秒钟.

如果你想从主线程中停止它:

timer.cancel()

但是如果您使用事件驱动的GUI系统(如wxPython或PyQT)编写GUI应用程序,那么您应该使用他们的事件管理计时器.特别是如果您要从计时器回调更改某些GUI状态.

编辑:

哦,好的,这是你的完整答案:

import threading

seconds = 1 # Initial time must be the time+1 (now 0+1)

timer = None

def tick ():

global seconds, timer

seconds -= 1

if seconds==0:

print("%i seconds left" % seconds)

print("Timer expired!")

return

# printing here will mess up your stdout in conjunction with input()

print("%i second(s) left" % seconds)

timer = threading.Timer(1, tick)

timer.start()

seconds += int(input("Initial countdown interval: "))

tick()

while 1:

seconds += int(input("Add: "))

if not timer.is_alive():

print("Restarting the timer!")

seconds += 1

tick()

或者带有线程的简单版本(但是有点clumsyer然后使用threading.Thread):

from thread import start_new_thread as thread

from time import sleep

seconds = 1 # Initial time+1

alive = 0

def _tick ():

global seconds, alive

try:

alive = 1

while 1:

seconds -= 1

if seconds==0:

print("%i seconds left" % seconds)

print("Timer expired!")

alive = 0

return

# printing here will mess up your stdout in conjunction with input()

print("%i second(s) left" % seconds)

sleep(1)

except: alive = 0

def tick ():

thread(_tick,())

# Then same as above:

seconds += int(input("Initial countdown interval: "))

tick()

while 1:

seconds += int(input("Add: "))

if not alive:

print("Restarting the timer!")

seconds += 1

tick()

您必须意识到在线程中使用stdout将在输入()输出的提示消息之后插入打印的文本.

这将令人困惑.如果你想避免这种情况,那么你将不得不编写另一个线程来获取队列中的消息并输出它们.

如果最后一条消息是提示消息,则必须将其从屏幕中删除,写入新消息,然后返回提示消息,并相应地定位光标.

你可以通过在threading.Thread的子类中实现类似文件的接口,然后用它替换sys.stdout来实现.也许重写input()以指示何时提示消息输出并且stdin被读取.

python运行时不让电脑休眠_python – 在不中断程序的情况下休眠相关推荐

  1. python运行时修改代码会怎样_python运行时修改代码的方法——monkey patch

    monkey patch (猴子补丁) 用来在运行时动态修改已有的代码,而不需要修改原始代码. 简单的monkey patch 实现: [Python] #coding=utf-8 def origi ...

  2. python运行时不让电脑休眠_如何在不休眠整个程序的情况下以一种功能休眠 - python...

    因此,我尝试制作一个游戏,在这个游戏中,我调用了一个我想慢慢执行的函数,但是当我使用" time.sleep(x)"时,它将暂停文件中的所有内容,而不仅仅是暂停功能.我正在尝试为2 ...

  3. 在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)

    拼多多现在也是越来越火了,但是不知道大家有没有发现,拼多多似乎一直不能通过网页进行访问.淘宝,京东都有微信客户端,那么怎么拼多多就没有呢?带着这个疑问,我特地去手机爬取了一下拼多多的客户端.(其实也不 ...

  4. python 运行时 变量_python运行过程,变量,符号

    1,python运行过程 2,编译型,解释型 编译型,  C,  C++     ------>准备好的一桌子菜,直接吃 一次性把你的代码编译生成机器能够识别的二进制码 解释型:      py ...

  5. python异常处理时所使用的保留字_Python中,下列哪个保留字不用于异常处理______________。_学小易找答案...

    [单选题]维持细胞生存所必需的最基本的基因是 ( ) [单选题]从体细胞克隆高等哺乳动物的成功说明了 ( ) [单选题]细胞决定与细胞分化的关系是 ( ) [多选题]一种类型的分化细胞转变成另-种类型 ...

  6. python怎么设置函数超时时间_在python运行时为函数设置超时秒数

    我遵循this解.在 我试图为我的函数during runtime设置超时秒数,这使我能够灵活地传递不同的timeout seconds,甚至不打开脚本(测试.py)在 在超时.py在from fun ...

  7. python运行时很卡-Python代码运行速度慢?这五种方法很管用

    对于Python很多人还是比较了解的,虽然说Python有很多优势但同样具有劣势,Python最大的劣势就是运行效率慢,那么如何提高Python代码运行速度呢?这五种方法很管用. 1.PyPy:在选择 ...

  8. python运行不了、显示警告_Python中偶尔遇到的细节疑问(二):UnicodeDecodeError,警告与忽略警告warnings...

    1. 使用base64解码时,出现:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 21: invalid c ...

  9. Python运行时打印汉语拼音表

    问题 Python运行时会输出如下汉语拼音表,在代码中并没有这部分的输出. a ai an ang ao a ou b iao c uang iang d e ei en eng er e en f ...

最新文章

  1. Java-ORM数据库框架CDM介绍
  2. .net 导出excel_java导出excel(easypoi)
  3. 企业网络推广浅析网站首页什么样的布局有利于优化?
  4. 剑指Offer:剪绳子(动态规划、贪婪算法)
  5. java基础系列:集合基础(2)
  6. all resources based on handshake
  7. 设计器的使用及常用控件
  8. JAVA的网络编程【转】
  9. 基于java SSM框架的旅游网站设计开发(含源文件)
  10. c++ 测试串口速率_山西充放电测试设备实现多台仪器准确通
  11. flowable工作流 流程变量_互联网架构设计漫谈 (6)-90%的架构师都知道的工作流原理...
  12. Storyboard和Xib混用黑魔法-swift版
  13. php跳转方式带rere_PHP利用REFERER根居访问来地址进行页面跳转
  14. oracle中with子句的用法(转)
  15. 这是我对智能制造的所有理念
  16. java实现断点续播_javaweb 播放视频通过断点续传拖动滚动条
  17. 相控阵天线(十一):阵列天线有源驻波分析
  18. 餐厅扫码点餐怎么弄_分享扫码点餐小程序开发制作方法
  19. 人工智能系列电子书分享
  20. 速卖通正式推出全托管,卖家竞争进入新阶段

热门文章

  1. Typora 自动保存笔记
  2. C++ 实用趣味小程序
  3. 分解质因数 C语言实现
  4. android6.0权限适配RxPermissions
  5. 市场调查——定性研究方法
  6. 从雨天塞车说DevOps,兼修订三步生活法
  7. android定位二(百度定位SDK)
  8. 【报告分享】2021小红书电商直播趋势报告-千瓜数据(附下载)
  9. FusionCompute集群知识
  10. 与领导喝酒的18个应紧记的诀窍