-1

我是 python 新手,我有一个程序,女巫是在命令行中显示百分比的王者:

sys.stdout.write("[")

    for x in xrange(1,int(number)):

        percentage = (x*100)/int(number)
        numberfile.write(str(x)+'\n') 

        sys.stdout.write("\r%d%%" %percentage)
        sys.stdout.flush()

    sys.stdout.write("][Done]")

但我的问题是flush()函数,删除它之前的所有输出,输出是这样的:

100%][完成]

我怎么能把它改成

[100%][完成]

4

2 回答 2

1

问题不是冲洗,而是“\r”

sys.stdout.write("\r%d%%" %percentage)

也许你想要

sys.stdout.write("\r[%d%%" %percentage)
于 2013-03-22T11:19:38.227 回答
0
    sys.stdout.write("\r%d%%" %percentage)

应该

    sys.stdout.write("\r[%d%%]" %percentage)

为了避免有趣的显示:

[伪代码]

for x in xrange(1,int(number)):

    percentage = (x*100)/int(number)
    numberfile.write(str(x)+'\n') 

    lastP = percentage
    if (percentage  > lastP)
        sys.stdout.write("[%d%%]" %percentage);
        sys.stdout.flush();
        lastP = percentage 
于 2013-03-22T11:23:12.067 回答