在Python 3中删除/替换打印语句

13 浏览
0 Comments

在Python 3中删除/替换打印语句

可能是重复问题:
\nPython进度条
\n控制台中的文本进度条 \n所以我正在开发一个基本程序,我想做两件事:\n

    \n

  1. 一个加载中的文本行,点号按以下方式增加:\n加载中.\n加载中..\n加载中...\n加载中.\n加载中..\n加载中...
  2. \n

  3. 一行中递增的百分比:\n1% 完成...\n3% 完成...\n等等。
  4. \n

\n所以,我的问题是如何删除/替换打印的文本?我希望这些事情发生在同一行上。对于第一个例子,如何将3个点替换为1个点,或者仅擦除末尾的2个点(而不换行)?对于第二个例子,如何使百分比在保持在同一行的同时递增?

0
0 Comments

在Python 3中,有一些旧版本的代码可能会出现问题,特别是与打印输出相关的代码。这是因为Python 3中的一些更改导致旧版本的打印语句在新版本中不再起作用。

在上面的代码示例中,我们可以看到使用`sys.stdout.write`来替代`print`语句来实现打印输出。这是因为在Python 3中,`print`语句已经被改变为一个函数,需要使用括号来调用。因此,为了使旧版本的代码与Python 3兼容,我们需要将`print`语句替换为`sys.stdout.write`函数。

此外,代码中还使用了`\r`转义字符来实现每次更新进度时在同一行上显示百分比。在Python 3中,这个转义字符不再有效。相反,我们可以使用`end`参数来指定打印结束时的字符,从而在同一行上更新打印输出。

因此,我们可以将上面的代码修改为以下形式来适应Python 3:

import time
import sys
for i in range(100):
   time.sleep(1)
   sys.stdout.write("\r%d%%" %i)
   sys.stdout.flush()

通过上述修改,我们可以在Python 3中正确地显示进度百分比。这种修改方法可以帮助我们解决在Python 3中替换或移除打印语句的问题。

0