鍍金池/ 問答/Python/ Python中如何不換行輸出進(jìn)度并在原位置進(jìn)行刷新顯示?

Python中如何不換行輸出進(jìn)度并在原位置進(jìn)行刷新顯示?

import sys
num_batches = 20
for step in range(1,20):
    sys.stdout.write('processing: {} batch / {} batches.'.format(step + 1, num_batches)+ ' \r')
    sys.stdout.flush()

不過輸出結(jié)果如下:似乎\r沒有起到作用?這是為什么呢?

圖片描述

回答
編輯回答
魚梓

使用特殊的控制轉(zhuǎn)移序列.

\x1B[1A 代表光標(biāo)往上移動(dòng)一行, \x1B[K 代表將當(dāng)前光標(biāo)至本行末尾的內(nèi)容擦除掉, 組合起來(lái)相當(dāng)于清除上一行的內(nèi)容.

sys.stdout.write('\x1B[1A\x1B[Kprocessing: {} batch / {} batches.'.format(step + 1, num_batches)+ ' \r')
2017年12月8日 23:24