Node.js не может читать стандартный вывод подпроцесса Python при чтении со стандартного вводаPython

Программы на Python
Гость
Node.js не может читать стандартный вывод подпроцесса Python при чтении со стандартного ввода

Сообщение Гость »

У меня есть скрипт node.js, который запускает подпроцесс Python и считывает его стандартный вывод. Это работает до тех пор, пока процесс Python не пытается прочитать данные со стандартного ввода. Тогда родительский процесс ничего не получает от дочернего.

У меня есть сценарий node.js и два тестовых примера Python: (оба примера работают, если вы прокомментируете строки которые пытаются читать со стандартного ввода)

Первый дочерний элемент:

import sys

print('before')

for line in sys.stdin:
print(line)

print('after')


Второй ребенок:

import sys

print('before')

while True:
line = sys.stdin.readline()

if line != '':
print(line)
else:
break

print('after')


Родитель:

const spawn = require('child_process').spawn;

let client = spawn('python', ['test1.py'], {cwd: '/tmp'});

client.stdout.on('data', (data) => {
console.log(data.toString());
});

client.stderr.on('data', (data) => {
console.log(data.toString());
});

client.on('close', () => {
console.log('close');
});

client.on('exit', () => {
console.log('exit');
});

client.on('disconnect', () => {
console.log('disconnect');
})


Подробнее здесь: https://stackoverflow.com/questions/407 ... from-stdin

Вернуться в «Python»