python - Python不打印输出
问题描述
我正在学习将电子 js 与 python 一起使用,并且我正在使用python-shell,所以我有以下简单的 python 脚本:
import sys, json
# simple JSON echo script
for line in sys.stdin:
print(json.dumps(json.loads(line)))
在我的 main.js 中:
let {PythonShell} = require('python-shell')
let pyshell = new PythonShell('/home/bassel/electron_app/pyapp/name.py', {mode : 'json'});
pyshell.send({name:"mark"})
pyshell.on('message', function (message) {
// received a message sent from the Python script (a simple "print" statement)
console.log("hi");
});
但是hi
没有打印出来,有什么问题吗?
解决方案
输出通常被缓冲以保留系统资源。这意味着在这种情况下,系统会保留 Python 输出,直到有足够的内容一起释放。
为了克服这个问题,您可以显式“刷新”输出:
import sys, json
# simple JSON echo script
for line in sys.stdin:
print(json.dumps(json.loads(line)))
sys.stdout.flush() # <--- added line to flush output
如果您使用的是 Python 3.3 或更高版本,您也可以使用:
import sys, json
# simple JSON echo script
for line in sys.stdin:
print(json.dumps(json.loads(line)), flush=True) # <--- added keyword
推荐阅读
- python - Heroku Postgres 数据库在我的 Django 项目中不起作用
- javascript - 如何使用 svelte-routing 在当前路由器中导航?
- css - Bootstrap 5个浮动标签重叠
- flutter - 在 Flutter 中将数据从一个小部件传输到整个项目
- python - 返回一个数据框作为结果 Flask
- tensorflow - ValueError: 无法解析模型:pybind11::init(): factory function returned nullptr
- mongodb - Nestjs与Mongodb本机驱动程序注入连接问题
- api-doc - 使用 apidocjs 生成 api doc 时是否可以覆盖值?
- mysql - 服务器Mysql8崩溃 300个连接打开
- python-3.x - Pandas:滑动窗口,汇总应用程序 14 天数据