Hướng dẫn how to run a loop for a certain amount of time python - làm thế nào để chạy một vòng lặp trong một khoảng thời gian nhất định python

Tôi đã tìm kiếm một vòng thời gian dễ đọc hơn khi gặp câu hỏi này ở đây. Cái gì đó như:

for sec in max_seconds[10]:
      do_something[]

Vì vậy, tôi đã tạo ra người trợ giúp này:

# allow easy time-boxing: 'for sec in max_seconds[42]: do_something[]'
def max_seconds[max_seconds, *, interval=1]:
    interval = int[interval]
    start_time = time.time[]
    end_time = start_time + max_seconds
    yield 0
    while time.time[] < end_time:
        if interval > 0:
            next_time = start_time
            while next_time < time.time[]:
                next_time += interval
            time.sleep[int[round[next_time - time.time[]]]]
        yield int[round[time.time[] - start_time]]
        if int[round[time.time[] + interval]] > int[round[end_time]]: 
            return

Nó chỉ hoạt động với đầy đủ vài giây là ok cho trường hợp sử dụng của tôi.

Examples:

for sec in max_seconds[10] # -> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
for sec in max_seconds[10, interval=3] # -> 0, 3, 6, 9
for sec in max_seconds[7]: sleep[1.5] # -> 0, 2, 4, 6
for sec in max_seconds[8]: sleep[1.5] # -> 0, 2, 4, 6, 8

Xin lưu ý rằng khoảng thời gian đó không chính xác, vì tôi chỉ chờ đợi đầy đủ [giấc ngủ không bao giờ tốt cho tôi với thời gian

Bài Viết Liên Quan

Chủ Đề