Как гарантировать, что выполнение цикла while в Python занимает определенное время?Python

Программы на Python
Ответить
Anonymous
 Как гарантировать, что выполнение цикла while в Python занимает определенное время?

Сообщение Anonymous »

Я читаю последовательные данные с помощью цикла while. Однако я не могу контролировать частоту дискретизации.

Кажется, что сам код выполняется за 0,2 секунды, поэтому я знаю, что не смогу работать быстрее. чем это. Но мне бы хотелось иметь возможность точно контролировать, насколько медленнее я семплирую.

Я чувствую, что могу сделать это, используя «сон», но проблема в том, что есть существует вероятность того, что в разных точках чтение самого цикла займет больше времени (в зависимости от того, что именно передается по последовательным данным), поэтому коду придется компенсировать баланс.

Например, предположим, что я хочу производить выборку каждую 1 с, и цикл занимает где-то от 0,2 до 0,3 с на запуск. Мой код должен быть достаточно умным, чтобы спать 0,8 с (если цикл занимает 0,2 с) или 0,7 с (если цикл занимает 0,3 с).

import serial
import csv
import time

#open serial stream
while True:

#read and print a line
sample_value=ser.readline()
sample_time=time.time()-zero
sample_line=str(sample_time)+','+str(sample_value)
outfile.write(sample_line)
print 'time: ',sample_time,', value: ',sample_value


Подробнее здесь: https://stackoverflow.com/questions/131 ... time-to-ru
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»