gpt4 book ai didi

python - 异步进度微调器

转载 作者:行者123 更新时间:2023-12-05 08:41:33 24 4
gpt4 key购买 nike

这是进度微调器的代码:

import sys
import time

def spinning_cursor():
while True:
for cursor in '|/-\\':
yield cursor

spinner = spinning_cursor()
for _ in range(50):
sys.stdout.write(spinner.next())
sys.stdout.flush()
time.sleep(10)
sys.stdout.write('\b')

输出

python2.7 test.py
|

由于循环休眠了 10 秒,它旋转得非常慢......

如何在进程休眠时继续旋转微调器?

最佳答案

您必须创建一个单独的线程。下面的例子粗略地展示了如何做到这一点。然而,这只是一个简单的例子。

import sys
import time

import threading


class SpinnerThread(threading.Thread):

def __init__(self):
super().__init__(target=self._spin)
self._stopevent = threading.Event()

def stop(self):
self._stopevent.set()

def _spin(self):

while not self._stopevent.isSet():
for t in '|/-\\':
sys.stdout.write(t)
sys.stdout.flush()
time.sleep(0.1)
sys.stdout.write('\b')


def long_task():
for i in range(10):
time.sleep(1)
print('Tick {:d}'.format(i))


def main():

task = threading.Thread(target=long_task)
task.start()

spinner_thread = SpinnerThread()
spinner_thread.start()

task.join()
spinner_thread.stop()


if __name__ == '__main__':
main()

关于python - 异步进度微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48854567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com