Python не печатает вывод - PullRequest
       15

Python не печатает вывод

1 голос
/ 24 марта 2019

Я учусь использовать электронный 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 не печатается, что не так?

1 Ответ

0 голосов
/ 25 марта 2019

Вывод часто буферизуется для сохранения системных ресурсов. Это означает, что в этом случае система удерживает вывод 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...