在控制台中正确打印\\\\ r

问题描述

| 当我编写更新打印行的脚本时,例如:
for i in range(101):
    print(str(i) + \"% \\r\",end=\"\")
并使用终端(Ubuntu)运行此脚本,我得到正确的输出,该输出更新了该行:
100%
但是,在Eclipse中使用Pydev,Eclipse控制台可以做到这一点:
0%
1%
2%
...
100%
有人知道怎么修这个东西吗?提前致谢!     

解决方法

这似乎是旧的CR LF问题。根据所使用的操作系统和控制台,CR和LF作为线路终端的解释会有所不同。 某些系统需要CRLF作为行尾。 一些系统仅需要LF,但是隐式地执行CR。 有些系统(如您的系统)在每个CR之前隐式地执行LF,尽管这是我第一次看到。 也许有一种方法可以编辑PyDev控制台的换行设置。 编辑:或者您可以使用ANSI转义码来移动光标。像CSInD左边的n个字符或CSInC右边的n个字符。     ,这是因为无论何时使用\\ r,\'print \'总是生成新行,请尝试使用sys.stdout:
import time,sys

for i in range(101):
    sys.stdout.write(str(i) + \"% \\r\")
    sys.stdout.flush()
    time.sleep(.3)
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...