Как создать задержку времени?
У меня возникла проблема с добавлением задержки времени в скрипте на Python. Я пытаюсь реализовать паузу в исполнении программы, например на 50 миллисекунд, но не могу найти подходящее решение.
Я наткнулся на вопрос с аналогичной проблемой на StackOverflow, однако он был закрыт 5 лет назад, и его причина не была разрешена. Существует несколько ответов, но они, похоже, не решают мою задачу.
Может ли кто-нибудь подсказать, как правильно сделать задержку в 50 миллисекунд в Python? Какой модуль или метод лучше использовать для этой цели? Буду благодарен за разъяснения!
3 ответ(ов)
Этот код задерживает выполнение на 2.5 секунды:
import time
time.sleep(2.5)
Вот другой пример, где что-то выполняется примерно раз в минуту:
import time
while True:
print("Это сообщение выводится раз в минуту.")
time.sleep(60) # Задержка на 1 минуту (60 секунд).
Задержки также могут быть реализованы с использованием следующих методов.
Первый метод:
import time
time.sleep(5) # Задержка на 5 секунд.
Второй метод заключается в использовании неявного ожидания:
driver.implicitly_wait(5)
Третий метод более полезен, когда нужно дождаться завершения определенного действия или появления элемента:
self.wait.until(EC.presence_of_element_located((By.ID, 'UserName')))
Есть пять методов, которые я знаю: time.sleep()
, pygame.time.wait()
, pyplot.pause()
из matplotlib, метод .after()
и asyncio.sleep()
.
Пример time.sleep()
(не используйте, если работаете с tkinter):
import time
print('Привет')
time.sleep(5) # Количество секунд
print('Пока')
Пример pygame.time.wait()
(не рекомендуется, если вы не используете окно pygame, но вы можете выйти из окна мгновенно):
import pygame
# Если собираетесь использовать модуль времени,
# не делайте "from pygame import *"
pygame.init()
print('Привет')
pygame.time.wait(5000) # Миллисекунды
print('Пока')
Пример функции pyplot.pause()
из matplotlib (не рекомендуется, если вы не используете график, но вы можете выйти из графика мгновенно):
import matplotlib
print('Привет')
matplotlib.pyplot.pause(5) # Секунды
print('Пока')
Метод .after()
(лучше всего использовать с Tkinter):
import tkinter as tk # Tkinter для Python 2
root = tk.Tk()
print('Привет')
def ohhi():
print('О, привет!')
root.after(5000, ohhi) # Миллисекунды и затем функция
print('Пока')
Наконец, метод asyncio.sleep()
(должен быть в асинхронном цикле):
await asyncio.sleep(5)
Почему используется string.join(list), а не list.join(string)?
Создание словаря с помощью генератора словарей
Как получить полный путь к директории текущего файла?
UnicodeDecodeError: Кодек 'charmap' не может декодировать байт X в позиции Y: символ отображается как <неопределённый>
Найти все файлы с расширением .txt в директории на Python