我一直在跟踪几个从Node调用Python脚本的例子。我可以执行脚本,但不能从Python返回数据。
测试.js
var sys = require('sys'),
spawn = require('child_process').spawn,
dummy = spawn('python', ['test.py']);
dummy.stdout.on('data', function (data) {
sys.print("testing...\n");
sys.print(data);
});
测试.py
import time
def dummy() :
out = '';
for i in range(0,10) :
out += str(i + 1) + "\n"
time.sleep(0.1)
print out
return out
if __name__ =='__main__' :
dummy = dummy()
有人能举例说明如何将test.py的结果返回给test.js吗?
谢谢。
注:test.py已编辑,以便正确缩进。
我想你的test.py有漏洞。您应该再次检查缩进,然后在终端中运行
python test.py
,查看它是否打印1到10:您应该将stdout和stderr重定向到父进程,这有助于您快速识别错误:
我通过用Python打印数据,并使用stdout.on()来“监听”print-in节点,找到了如何做到这一点。
测试.js
测试.py
由于Sys已弃用,我们可以使用util。请使用util查找修改后的代码
测试js
测试.py
相关问题 更多 >
编程相关推荐