gpt4 book ai didi

python - python 诅咒中的进度条

转载 作者:行者123 更新时间:2023-12-01 02:38:10 25 4
gpt4 key购买 nike

我创建了一个进度条,该进度条在从另一个函数获取百分比后会自行更新,但我在让它像这样追踪时遇到问题############。相反,它只是将“#”向右移动,直到达到 100%。下面是我的代码。之所以这样,是因为我需要从外部获取百分比,以便代码可以重用。请帮助我。

import curses
import time

curses.initscr()

def percentage():
loading = 0
while loading < 100:
loading += 1
time.sleep(0.03)
update_progress(loading)


def update_progress(progress):
win = curses.newwin(3, 32, 3, 30)
win.border(0)
rangex = (30 / float(100)) * progress
pos = int(rangex)
display = '#'
if pos != 0:
win.addstr(1, pos, "{}".format(display))
win.refresh()

percentage()

最佳答案

问题是您每次都调用 newwin(),丢弃旧的 win 并在同一位置用新的替换。该新窗口仅添加一个字符,背景为空白,因此您会看到一个前进的光标而不是一个栏。

一种可能的解决方案:

import curses
import time

curses.initscr()

def percentage():
win = curses.newwin(3, 32, 3, 30)
win.border(0)
loading = 0
while loading < 100:
loading += 1
time.sleep(0.03)
update_progress(win, loading)

def update_progress(win, progress):
rangex = (30 / float(100)) * progress
pos = int(rangex)
display = '#'
if pos != 0:
win.addstr(1, pos, "{}".format(display))
win.refresh()

percentage()

curses.endwin()

(请注意添加了对 endwin() 的调用,以将终端恢复到正常模式。)

至于程序结束后将其保留在屏幕上,这超出了诅咒的范围。抱歉,您不能真正依赖于curses 和stdio 之间的任何交互。

关于python - python 诅咒中的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46011314/

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