【问题标题】:Python not printing outputPython不打印输出
【发布时间】:2019-03-24 15:03:19
【问题描述】:

我正在学习在 python 中使用电子 js,我正在使用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


【解决方案1】:

通常会缓冲输出以保留系统资源。这意味着在这种情况下,系统会保留 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多