我正在尝试如何从NodeJS运行python,并在线找到了child_proccess生成解决方案。
// server setup constant
const express = require('express');
// The application
const app = express();
// Port the server runs on
const port = 8080;
app.listen(port, () => console.log("running (main.js)"));
const spawn = require('child_process').spawn;
const py = spawn('python', ['main.py', "Message", 12]);
py.stdout.on('data', data => {
console.log(data.toString());
});
py.stdout.on('end', () => {
console.log("end of transmission");
});
我发送的第二个参数是整数12。我尝试在python脚本中递增数字,然后将其打印回去。奇怪的是,如果我更改了作为参数从Node传递到Python的String,则没有问题。如果我尝试更改任何数字,Python将会崩溃。数字是否以常量形式传输,这就是为什么?如果可以,我该如何解决?
Python:
import sys, json as np
message = sys.argv[1]
number = sys.argv[2]
number = number + 1
print(message)
print("Added one to number")
print(number)
sys.stdout.flush()
答案 0 :(得分:1)
sys.argv
是一个字符串列表。使用int()
函数将字符串转换为数字。
import sys, json as np
message = sys.argv[1]
number = int(sys.argv[2]) # convert string to number
number = number + 1
print(message)
print("Added one to number")
print(number)
sys.stdout.flush()