PyCharm中的Love2d控制台仅在关闭后才能写入

我正在使用PyCharm社区版创建一个Love2d应用程序。我创建了一个快捷键来运行一个 .bat 文件,以使用 lovec.exe 运行它,该文件打开应用程序运行时的控制台,然后我创建了一个 外部工具,通过键盘快捷方式运行 .bat 文件,在使用它时,控制台在PyCharm中打开,但不会写入任何内容,在关闭应用程序后,所有应该写入的内容才会出现,当我在PyCharm外部运行 .bat 文件时,它的功能完美。

我想知道是否有明显的解决方法,或者如何通过外部工具在PyCharm外部运行控制台。

点赞
用户2238176
用户2238176

这个问题是由 Lua 延迟写文件的方式,即“缓冲”,所导致的。要更改它,请在文件顶部放置以下命令:

io.stdout:setvbuf( 'no' ) -- Switches buffering for stdout to be off

在 Lua 的手册中了解更多:

file:setvbuf (mode [, size])

设置输出文件的缓冲模式。有三种可用模式:

  • “no”:无缓冲; 任何输出操作的结果立即显示。
  • “full”:完全缓冲; 仅当缓冲区满或您显式flush文件时(参见io.flush),才执行输出操作。
  • “line”:行缓冲; 输出被缓冲,直到输出换行符或有任何来自某些特殊文件(例如终端设备)的输入。

对于最后两种情况,size指定缓冲区的大小,以字节为单位。默认值是一个适当的大小。

2019-03-07 04:34:01