我正在使用NodeJS和Python脚本。
我需要从python脚本中获取结果,为此,我使用Python-Shell。
请参阅此链接上的文档:
github.com/extrabacon/python-shell
我可以使用pythonShell.on和pythonShell.end获得打印件。
问题是我无法使用此方法发送args
然后我使用
pythonShell.run
!我可以发送args,但它不返回打印内容,而应....
您能帮我获取照片吗?
您可以在下面看到我的短代码,这是一个简单的代码,只是为了使其工作。
var pythonShell = require('python-shell');
app.post('/index/generator/',urlencodedParser, function (req,res){
var options = {
mode: 'JSON',
pythonOptions: ['-u'],
scriptPath: './generator',
args: ['hello','bye']
};
pythonShell.run('generator.py', options, function (err, results) {
if (err) throw err;
console.log("Message %j ",results);
});
})
这是python代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
print(sys.argv[1]+' '+sys.argv[2])
最佳答案
您可以使用child_process,
使python文件可执行chmod +x generator.py
产生子进程
```
const { spawn } = require('child_process');
const ls = spawn('./generator.py', ['hello', 'world']);
ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
ls.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
```
然后使用process.send与父进程进行通信