如何将NodeJs中的变量插入到python脚本中?

时间:2016-11-22 23:52:52

标签: python node.js python-3.x serial-port

我正在使用python-shell在我的NodeJs环境中运行我的python脚本。

我有以下NodeJs代码:

var PythonShell = require('python-shell');

var command = 'open1';
var comport = 6;

var options = {
    scriptPath: 'python/scripts'
};

PythonShell.run('controlLock.py', options, function (err, results) {
  if (err) throw err;
  console.log('results: %j', results);
});

我需要能够在执行脚本之前将命令和COMPORT变量包含在python controlLock脚本中(否则它将没有正确的值)。

以下是controlLock.py文件

import serial 
ser = serial.Serial()
ser.baudrate = 38400 #Suggested rate in Southco documentation, both locks and program MUST be at same rate 
ser.port = "COM{}".format(comport) 
ser.timeout = 10 
ser.open() 
#call the serial_connection() function 
ser.write(("%s\r\n"%command).encode('ascii'))

1 个答案:

答案 0 :(得分:3)

你可以run the python script with arguments。传递给options的{​​{1}}有一个名为PythonShell.run()的属性,您可以使用该属性将参数传递给python脚本。然后,您可以从python脚本中read these command line arguments并插入所需的位置。

args参数

python-shell

python脚本

var options = {
  scriptPath: 'python/scripts',
  args: [command, comport], // pass arguments to the script here
};