是否有打印 w/o 不是 sys.stdout.write 或 print("",end="") 的换行符的函数?

Is there a function to print w/o newline that is not sys.stdout.write or print("",end="")?

我正在尝试使用 python 命令行制作游戏引擎,但 sys.stdout.writeprint('',end='') 使命令行陷入困境并使其崩溃。

我试过 stdoutprintend 关键字参数,但它们使命令行崩溃。怎么回事?

使用 print 而不使用 end 参数的这段代码工作正常:

while True:
    print('                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         =                                                                              ===                                                                            =====                                                                          =======                                                                        =========                                                                      ===========                                                                    =============    YYYYYYYYYYY                                                 ================================================================================')

虽然这个使用 sys.stdout.write 来防止新行打印,但有问题:

import sys
while True:
    sys.stdout.write('                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         =                                                                              ===                                                                            =====                                                                          =======                                                                        =========                                                                      ===========                                                                    =============    YYYYYYYYYYY                                                 ================================================================================')
    sys.stdout.flush()

我希望它 运行 与 printendsys.stdout 一起快速 运行,但控制台却停滞不前并崩溃。

您正在使用 IDLE shell 来 运行 您的程序,不要

IDLE 无法很好地管理输出文本,并且 确实 在输出非常长的文本行时速度变慢(这就是 print 没有 end 关键字的原因参数工作正常,因为你打印的是多行单独的行,而不是 1 行,它变得越来越长)。

而是使用标准的 Windows 命令行 (cmd.exe)。

您可以通过 GUI 运行ning 您的 .py 文件或 运行ning:

来执行此操作(假设您的安装已正确配置)
python filename.py

在命令行中。

这已在 2006 年的 Python (IDLE shell window gets very slow when displaying long lines) 中被报告为错误,并且该问题仍未解决。

您可以在 this Stack Overflow post.

上阅读更多内容,包括一些数字