-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 に答える