用Python Sh在当前行上打印

2024-05-14 04:31:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图制作一个百分比文本,显示进度金额,但我试图避免百分比打印如下:

Progress: 10% Progress: 11% Progress: 12% Progress: 13%

如何擦除和写入当前行?Iv'e尝试使用\r和\b字符,但似乎都不起作用。我以前发现的每一件事都是针对python2或Unix的,所以我甚至不确定哪个是问题所在(即使是其中一个),因为我没有使用任何一个。有人知道我怎么用运行Windows7的Python3来做到这一点吗?这是我目前使用的不起作用的代码,但我已经尝试了很多其他的事情。在

print('Progress: {}%'.format(solutions//possibleSolutions),flush=True,end="\r")

编辑:

如果我从命令提示符下执行程序,这不是问题,所以我不认为这是windows的问题。我尝试将Python从之前使用的版本(3.4.1)更新到最新的v3.4.3,但问题是一样的。在

下面是问题的截图: 这是我能做的最好的截图。好像每次我把光标移到左边(经过一个进度:)时,文本和光标之间的灰色区域就会变大

编辑2:问题是IDLE不支持ASCII控制代码。解决方案:使用不同的IDE


Tags: 代码文本编辑unix字符事情金额python3
2条回答

您可以使用打印:

print('Progress: {}%'.format(solutions),flush=True,end="\r")

您可以创建一个名为Printer的新类,如下所示:

class Printer():
    def __init__(self, data):
        sys.stdout.write("\r\x1b[K"+data.__str__())
        sys.stdout.flush()

然后,假设要打印for循环的进度:

^{pr2}$

相关问题 更多 >