【问题标题】:Terminate a Python script after a time period在一段时间后终止 Python 脚本
【发布时间】:2019-02-28 05:35:30
【问题描述】:

我的代码确实每 2 秒捕获一次图像。但问题是它无休止地运行。我需要脚本在一段时间内终止或关闭(即在 50 秒后终止或关闭)。我尝试使用 sleep() 但怀疑不会终止整个脚本或关闭它,它只是让脚本进入睡眠状态! 希望有人可以帮助我在一段时间后终止脚本

我的脚本:

import cv2
import numpy
import time

capture = cv2.VideoCapture(0)
capture.set(3, 640)
capture.set(4, 480)
img_counter = 0
frame_set = []
start_time = time.time()

while True:
    ret, frame = capture.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame', gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
    if time.time() - start_time >= 2:
        img_name = "FaceFrame{}.jpg".format(img_counter)
        cv2.imwrite(img_name, frame)
        print("{} written!".format(img_counter))
        start_time = time.time()
    img_counter += 1

【问题讨论】:

    标签: python opencv time image-capture


    【解决方案1】:
    actual_start_time = time.clock()
    start_time = time.time()
    while ((time.clock() - actual_start_time) < 50):
        #do stuff
    

    或者:

    actual_start_time = time.clock()
    start_time = time.time()
    while True:
        #do stuff
        if (time.clock() - actual_start_time) > 50):
            break
    

    【讨论】:

    • 不应该小于吗?并且不完全需要外括号
    • @Jab 我在您发表评论之前修复了它。此外,外括号是个人选择。我发现它可以提高清晰度
    • 没问题,是的,这就是为什么我说它们并不完全需要,可以看到提高的可读性。如果 OP 真的想“终止脚本”,从技术上讲 exit() 感觉更合适
    • @Jab 从技术上讲,您在exit() 上是正确的。但是,如果提问者决定扩展他的脚本,那可能会完全破坏它。最好让脚本自行关闭,不是吗?
    • 我可以使用 time.time() 对吗?而不是 time.clock() .. 没问题吧?
    猜你喜欢
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 2013-12-21
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    相关资源
    最近更新 更多