Python 是否有一个不带换行符的打印函数,该换行符不是sys.stdout.write或print(“";,end=”)?
我试图使用python命令行创建一个游戏引擎,但是Python 是否有一个不带换行符的打印函数,该换行符不是sys.stdout.write或print(“";,end=”)?,python,python-3.x,windows,output,console-application,Python,Python 3.x,Windows,Output,Console Application,我试图使用python命令行创建一个游戏引擎,但是sys.stdout.write和print('',end='')阻塞了命令行并使其崩溃 我尝试了stdout和print的end关键字参数,但它们会使命令行崩溃。发生什么事了 使用print而不使用end参数的代码可以正常工作: while True: print('
sys.stdout.write
和print('',end='')
阻塞了命令行并使其崩溃
我尝试了stdout
和print
的end
关键字参数,但它们会使命令行崩溃。发生什么事了
使用print
而不使用end
参数的代码可以正常工作:
while True:
print(' = === ===== ======= ========= =========== ============= YYYYYYYYYYY ================================================================================')
而使用sys.stdout.write
阻止新行打印的操作存在以下问题:
import sys
while True:
sys.stdout.write(' = === ===== ======= ========= =========== ============= YYYYYYYYYYY ================================================================================')
sys.stdout.flush()
我希望它能通过
print
和end
或sys.stdout
快速运行,但控制台却陷入停滞并崩溃。您正在使用空闲的shell运行程序,不要这样做
IDLE无法很好地管理输出文本,并且在输出非常长的文本行时会减慢速度(这就是为什么没有end
关键字参数的print
可以正常工作的原因,因为您打印的是多个单独的行,而不是越来越长的一行)
相反,只需使用标准的Windows命令行(cmd.exe)
您可以通过GUI运行.py文件或运行以下命令来完成此操作(假设您的安装配置正确):
python filename.py
在命令行中
早在2006年,Python()中就有这样一个bug的报告,这个问题仍然存在
您可以阅读更多信息,包括堆栈溢出帖子上的一些数字。“控制台陷入困境并崩溃”这是什么意思?代码对我来说运行良好您使用的是什么命令行?“你所说的崩溃到底是什么意思?”丹·克莱尔说right@NickA我想这就是为什么pep8建议行限制:“)另一种打印到标准输出的方法对您没有帮助。谢谢。难道windows cmd窗口不写过屏幕边缘吗?我一次将整个画面打印到屏幕上,这会把一切搞砸。@killerqouw不,但它的宽度是可调的,您只需适当调整窗口大小,使其显示所需的方式为什么不带end属性的print命令可以正常工作?@KillerQuow更新了答案:这就是为什么不带end关键字参数的print可以正常工作的原因,因为您正在打印多个单独的行,不是越来越长的一行erpython.exe是一个控制台应用程序,这意味着默认情况下它要么从父级继承控制台,要么在父级没有控制台的情况下分配新控制台。控制台是由conhost.exe实例承载的系统资源。我们通常使用诸如cmd.exe或powershell.exe之类的shell启动控制台会话,但是我们可以直接从快捷方式或Win+R菜单运行python.exe,并获得一个不是从shell继承的新控制台。因此,请尽量不要将控制台与cmd.exe混淆。他们根本不是一回事。