我正在尝试使用python命令行制作游戏引擎,但是sys.stdout.write
和print('',end='')
陷入了困境,并使其崩溃。
我尝试了stdout
和print
的{{1}}关键字参数,但是它们使命令行崩溃。发生了什么事?
使用不带end
参数的print
的这段代码可以正常工作:
end
使用while True:
print(' = === ===== ======= ========= =========== ============= YYYYYYYYYYY ================================================================================')
来防止新行打印时,出现了以下问题:
sys.stdout.write
我希望它可以与import sys
while True:
sys.stdout.write(' = === ===== ======= ========= =========== ============= YYYYYYYYYYY ================================================================================')
sys.stdout.flush()
和print
或end
一起快速运行,但是控制台会停顿下来并崩溃。
答案 0 :(得分:4)
您正在使用IDLE shell运行程序,不要。
IDLE在输出文本很长的行时对文本的输出管理不善,确实会变慢(这是没有foreach
关键字参数的print
正常工作的原因,因为您要打印多行,而不是打印越来越长的一行)。
相反,只需使用标准的Windows命令行(cmd.exe)。
您可以通过GUI运行.py文件或运行以下命令来执行此操作(假设安装已正确配置):
end
在命令行中。
早在2006年,它就被报道为Python(IDLE shell window gets very slow when displaying long lines)中的错误,问题仍然存在。
您可以在this堆栈溢出帖子中阅读更多内容,包括一些数字。