python运行时不让电脑休眠_python – 在不中断程序的情况下休眠
有一种比从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 – 在不中断程序的情况下休眠相关推荐
- python运行时修改代码会怎样_python运行时修改代码的方法——monkey patch
monkey patch (猴子补丁) 用来在运行时动态修改已有的代码,而不需要修改原始代码. 简单的monkey patch 实现: [Python] #coding=utf-8 def origi ...
- python运行时不让电脑休眠_如何在不休眠整个程序的情况下以一种功能休眠 - python...
因此,我尝试制作一个游戏,在这个游戏中,我调用了一个我想慢慢执行的函数,但是当我使用" time.sleep(x)"时,它将暂停文件中的所有内容,而不仅仅是暂停功能.我正在尝试为2 ...
- 在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)
拼多多现在也是越来越火了,但是不知道大家有没有发现,拼多多似乎一直不能通过网页进行访问.淘宝,京东都有微信客户端,那么怎么拼多多就没有呢?带着这个疑问,我特地去手机爬取了一下拼多多的客户端.(其实也不 ...
- python 运行时 变量_python运行过程,变量,符号
1,python运行过程 2,编译型,解释型 编译型, C, C++ ------>准备好的一桌子菜,直接吃 一次性把你的代码编译生成机器能够识别的二进制码 解释型: py ...
- python异常处理时所使用的保留字_Python中,下列哪个保留字不用于异常处理______________。_学小易找答案...
[单选题]维持细胞生存所必需的最基本的基因是 ( ) [单选题]从体细胞克隆高等哺乳动物的成功说明了 ( ) [单选题]细胞决定与细胞分化的关系是 ( ) [多选题]一种类型的分化细胞转变成另-种类型 ...
- python怎么设置函数超时时间_在python运行时为函数设置超时秒数
我遵循this解.在 我试图为我的函数during runtime设置超时秒数,这使我能够灵活地传递不同的timeout seconds,甚至不打开脚本(测试.py)在 在超时.py在from fun ...
- python运行时很卡-Python代码运行速度慢?这五种方法很管用
对于Python很多人还是比较了解的,虽然说Python有很多优势但同样具有劣势,Python最大的劣势就是运行效率慢,那么如何提高Python代码运行速度呢?这五种方法很管用. 1.PyPy:在选择 ...
- python运行不了、显示警告_Python中偶尔遇到的细节疑问(二):UnicodeDecodeError,警告与忽略警告warnings...
1. 使用base64解码时,出现:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 21: invalid c ...
- Python运行时打印汉语拼音表
问题 Python运行时会输出如下汉语拼音表,在代码中并没有这部分的输出. a ai an ang ao a ou b iao c uang iang d e ei en eng er e en f ...
最新文章
- Java-ORM数据库框架CDM介绍
- .net 导出excel_java导出excel(easypoi)
- 企业网络推广浅析网站首页什么样的布局有利于优化?
- 剑指Offer:剪绳子(动态规划、贪婪算法)
- java基础系列:集合基础(2)
- all resources based on handshake
- 设计器的使用及常用控件
- JAVA的网络编程【转】
- 基于java SSM框架的旅游网站设计开发(含源文件)
- c++ 测试串口速率_山西充放电测试设备实现多台仪器准确通
- flowable工作流 流程变量_互联网架构设计漫谈 (6)-90%的架构师都知道的工作流原理...
- Storyboard和Xib混用黑魔法-swift版
- php跳转方式带rere_PHP利用REFERER根居访问来地址进行页面跳转
- oracle中with子句的用法(转)
- 这是我对智能制造的所有理念
- java实现断点续播_javaweb 播放视频通过断点续传拖动滚动条
- 相控阵天线(十一):阵列天线有源驻波分析
- 餐厅扫码点餐怎么弄_分享扫码点餐小程序开发制作方法
- 人工智能系列电子书分享
- 速卖通正式推出全托管,卖家竞争进入新阶段