我正在使用PyCharm社区版创建一个love2d应用程序。我创建了一个运行.bat
文件的热键,用lovec.exe
运行它,当应用程序运行时打开控制台,然后我创建了一个external tool
通过键盘快捷键运行.bat
file,当我使用它时,控制台打开在PyCharm中,它没有写任何东西,并且在关闭应用程序之后,所有本来应该写的内容出现了,当我在PyCharm之外运行.bat
文件时它运行完美。
我想知道是否有一个明显的解决方案,或者,如何通过外部工具在pycharm之外运行控制台。
这个问题是由于Lua延迟写文件的方式,称为“缓冲”。要更改它,请将以下命令放在文件的顶部:
io.stdout:setvbuf( 'no' ) -- Switches buffering for stdout to be off
阅读更多Lua的manual:
file:setvbuf (mode [, size])
设置输出文件的缓冲模式。有三种可用模式:
- “不”:没有缓冲;任何输出操作的结果立即出现。
- “饱满”:完全缓冲;仅当缓冲区已满或明确
flush
文件时才执行输出操作(请参阅io.flush
)。- “线”:线缓冲;输出被缓冲,直到输出换行或某些特殊文件(例如终端设备)有任何输入。
对于最后两种情况,
size
指定缓冲区的大小(以字节为单位)。默认值是合适的大小。