27

ループ内で 1 行以上印刷する必要があります (Python 3.x)。すでにSOを見回して、コードに次の行を入れました:

print('{0} imported\r'.format(tot),)

ただし、ループすると複数の行が出力されます。私も試してみました

sys.stdout.write('{0} imported\r'.format(tot))

しかし、これはコンソールに何も出力しません...

これで何が起こっているか知っている人はいますか?

4

3 に答える 3

29

最初のケースでは、一部のシステムは\r改行として扱います。2 番目のケースでは、あなたはflushラインを取りませんでした。これを試して:

sys.stdout.write('{0} imported\r'.format(tot))
sys.stdout.flush()

Levon が私に思い出させてくれたように、すべてのシステムでラインをフラッシュする必要はありませんが、\rこの方法を使用する場合は一般的に良い考えです。

于 2012-06-13T15:27:15.413 に答える
12

Janのソリューションを使用することを好みますが、次のようにします。

values = range(0, 101)
for i in values:
  print ("Complete: ", i, "%", end="\r")
print ()
于 2015-08-16T10:10:32.340 に答える