Создание анимации загрузки для терминала на Python

GetCoder.ru
Изображение статьи

В этой статье описывается создание анимации загрузки для терминала на Python с использованием библиотек time, sys и threading. Представлен пошаговый разбор кода, демонстрирующий, как можно улучшить пользовательский опыт при выполнении длительных процессов.

Ожидание завершения длительных процессов может быть утомительным для пользователей. Анимация загрузки в терминале помогает улучшить пользовательский опыт, показывая, что процесс выполняется. В этой статье мы рассмотрим пример реализации анимации загрузки в терминале на языке Python.

Исходный код

  • copy
import time, sys, threading class Main: def __init__(self): self.start() def animation(self): self.animation = True animation = [ "[■□□□□□□□□□]", "[■■□□□□□□□□]", "[■■■□□□□□□□]", "[■■■■□□□□□□]", "[■■■■■□□□□□]", "[■■■■■■□□□□]", "[■■■■■■■□□□]", "[■■■■■■■■□□]", "[■■■■■■■■■□]", "[■■■■■■■■■■]"] while self.animation == True: for i in range(len(animation)): time.sleep(0.5) sys.stdout.write("\r" + animation[i % len(animation)]) sys.stdout.flush() if self.animation == False: break sys.stdout.write("\r" + animation[-1]) sys.stdout.flush() def start(self): ws = threading.Thread(target=self.animation) ws.setDaemon(True) ws.start() # Имитация долгого процесса time.sleep(3) self.animation = False time.sleep(10) if __name__ == '__main__': Main()

Заключение

Данный пример демонстрирует, как можно реализовать анимацию загрузки в терминале на языке Python. Использование многопоточности позволяет выполнять анимацию параллельно с основным процессом, не блокируя его.

  • 26.07.2024
  • 40
  • 0

Создание анимации загрузки для терминала на Python

Ожидание завершения длительных процессов может быть утомительным для пользователей. Анимация загрузки в терминале помогает улучшить пользовательский опыт, показывая, что процесс выполняется. В этой статье мы рассмотрим пример реализации анимации загрузки в терминале на языке Python.

Исходный код

  • copy
import time, sys, threading class Main: def __init__(self): self.start() def animation(self): self.animation = True animation = [ "[■□□□□□□□□□]", "[■■□□□□□□□□]", "[■■■□□□□□□□]", "[■■■■□□□□□□]", "[■■■■■□□□□□]", "[■■■■■■□□□□]", "[■■■■■■■□□□]", "[■■■■■■■■□□]", "[■■■■■■■■■□]", "[■■■■■■■■■■]"] while self.animation == True: for i in range(len(animation)): time.sleep(0.5) sys.stdout.write("\r" + animation[i % len(animation)]) sys.stdout.flush() if self.animation == False: break sys.stdout.write("\r" + animation[-1]) sys.stdout.flush() def start(self): ws = threading.Thread(target=self.animation) ws.setDaemon(True) ws.start() # Имитация долгого процесса time.sleep(3) self.animation = False time.sleep(10) if __name__ == '__main__': Main()

Заключение

Данный пример демонстрирует, как можно реализовать анимацию загрузки в терминале на языке Python. Использование многопоточности позволяет выполнять анимацию параллельно с основным процессом, не блокируя его.