我是靠谱客的博主 野性金针菇,最近开发中收集的这篇文章主要介绍python和nodejs数据传递_在nodejs和Python之间交换数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我对node和插座.io. 我有一个nodejs服务器,我正试图使用它来生成Python进程,并在web页面之间传递数据。在Python端,我尝试使用Python的stdin/stdout管道。在

从Python到nodejs,再到服务器,一切都很好。但是,当我尝试使用标准写入,节点崩溃,并出现“结束后写入”错误。我想知道我用来从Python接收的套接字是否与我试图发回的套接字冲突。我正在使用计时器每秒向网页发送数据。在

这似乎与Python在调用时期望EOF有关系统标准读入行(),但是,当我使用标准结束()从nodejs那里,我就得到了错误。有趣的是,如果我不打电话标准结束,我没有收到错误,但我也没有收到任何东西。在

非常感谢任何帮助。恐怕我对插座.io看看这里出了什么问题。谢谢您。在

在NODEJS中:

生成Python进程:var util = require('util'),

spawn = require('child_process').spawn,

py = spawn('python', ['data_collect.py']);

从Python接收数据:

^{pr2}$

向浏览器发送数据:var listener = io.listen(server);

listener.sockets.on('connection', function (socket) {

socket.emit( 'dataPacket1', {variable_1: data1});

socket.emit( 'dataPacket2', {variable_2: data2});

socket.emit( 'dataPacket3', {variable_3: data3});

}, 1000);

从浏览器接收并发送到Python:socket.on('messageFromBrowser', function(data) {

py.stdin.setEncoding('utf-8');

py.stdin.write(JSON.stringify(data.browser_value+'n'));

py.stdin.end();

})

在PYTHON中:

发送到nodejs:output = "dataout"

sys.stdout.write(output)

sys.stdout.flush()

从nodejs接收:lines = []

while True:

line = sys.stdin.readline()

if line !='':

lines.append(line)

else:

break

return lines

最后

以上就是野性金针菇为你收集整理的python和nodejs数据传递_在nodejs和Python之间交换数据的全部内容,希望文章能够帮你解决python和nodejs数据传递_在nodejs和Python之间交换数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部