python - Python:完成所需内容后重置计时器
问题描述
我在寻找知识。
我目前正在开发一个程序,如果我的传感器在 30 秒内没有检测到任何人,则会启动一个视频。我目前正在使用time.time()
,但令人担忧的是,尽管尝试重置,但计时器仍在继续,并且在视频完成后不会重置为 0。
所以我尝试了一些新的研究,我遇到了一个主题time.clock()
,我最终得到了这个:Python's time.clock() vs time.time()
但我不确定我是否完全理解 , 或者 的作用timeit
,time.process_time()
是否time.perf_counter()
有可能以我想要的方式使用这些?还是仅用于计算几个示例中的代码的执行时间?
精确:
当我达到 30 秒时,我输入 if 启动视频,启动视频,然后输入time.sleep()
. 视频运行时计时器不会暂停并继续。视频完成后,我尝试重置计时器,一旦达到 50 秒但我做不到,我可能不会重置我需要的东西。因此,计时器永远不会停止,并且我的其他需要计时器(if timer> 7
)的功能在条件满足后直接启动(而在进入其他功能时它们应该从 0 重新开始)
PS:一个视频运行时,其他视频不叠加,请耐心等待
while True:
if ...:
try:
if(200 <= DD): # If we are more than 200 cm away
# We count the number of seconds between the last checkpoint and now
face_walking_apparition_time = time.time() - walking_timer # (t+3) - t = 3, it's how u calculate timer
# Then we check if a face has appeared for more than 30 seconds:
if face_walking_apparition_time > 30: # If the block is detected more than 30 seconds
# Display video
time.sleep(25)
face_motionless_apparition_time = 0 # I try to reset here
face_walking_apparition_time = 0 # I try to reset here
if face_walking_apparition_time >= 50: # After 20 seconds of video, reset
face_walking_apparition_time = 0 #I try to reset here
face_motionless_apparition_time = 0 # I try to reset here
elif (50 < DD) and (DD < 200):
# As we don't see no face, we have to reset our checkpoint to "now"
face_motionless_apparition_time = 0 # I try to reset here
face_walking_apparition_time = 0 # I try to reset here
PS:我是 python 新手,所以我的代码可能很难读
解决方案
我认为您可能误解了“计时器”的工作原理
我们通常做的是初始化一个变量,它time.time()
表示自 1970 年 1 月 1 日以来经过的秒数,然后当我们想像计时器一样测量时间时,我们time.time()
用前一个实例减去第二个实例,这给了我们测量两者之间的时间。
使用time.sleep(n)
只是在进入下一行之前等待 n 秒,所以它不会重置你的计时器
你需要围绕这些概念重新思考你的代码
推荐阅读
- html - 我们无法保存的 CSS 和 HTML 文件
- unity3d - 我的播放器(键盘)控件在 Unity 中非常敏感
- javascript - 在 Javascript 中将 JSON 转换为 HTML
- javascript - 如何通过电子邮件发送 d3 js 图表?
- android - 显示 DialogFragment 时如何捕获所有 GenericMotionEvent?
- vb.net - 有没有办法可以更快地写入 CSV?
- php - 如何在 PHP 中转换嵌套的 JSON 数组
- html - 是否有可能在固定的父 div 中存在一个相对于页面的子 div?
- java - javaFX的新手从密码和文本字段中获取字符串
- symfony - 更改 Symfony 公共目录以适应网站