Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用命名参数从Node.js(child_进程)运行python脚本_Python_Node.js_Python 2.7_Child Process_Spawn - Fatal编程技术网

使用命名参数从Node.js(child_进程)运行python脚本

使用命名参数从Node.js(child_进程)运行python脚本,python,node.js,python-2.7,child-process,spawn,Python,Node.js,Python 2.7,Child Process,Spawn,我有一个python脚本,可以在命令行上使用此参数运行: python2 arg1 --infile abc.csv --encrypt true --keyfile xyz.bin 1234 WOW path 但是,如果我尝试从Node.js子进程执行相同的操作,我会得到一个错误: const spawn = require("child_process").spawn; const process = spawn("python2", [ pa

我有一个python脚本,可以在命令行上使用此参数运行:

python2 arg1 --infile abc.csv --encrypt true --keyfile xyz.bin 1234 WOW path
但是,如果我尝试从Node.js子进程执行相同的操作,我会得到一个错误:

const spawn = require("child_process").spawn;

const process = spawn("python2", [
  path.join(rootDir, "public", "python", "script.py"),
  "arg1",
  "--infile abc.csv",
  "--encrypt true",
  "--keyfile xyz.bin",
  "1234",
  "WOW",
  "path",
]);
它没有运行并且给出了一个错误。 但是,如果在没有命名参数(--encrypt true)等的情况下运行,它将成功运行:

const process = spawn("python2", [
  path.join(rootDir, "public", "python", "script.py"),
  "arg1",
  "1234",
  "WOW",
  "path",
]);
我认为我传递命名参数的方式可能不正确。
请帮忙

您可能会发现这个小贴士很有用:


您需要拆分参数的每个部分:

const process = spawn("python2", [
  path.join(rootDir, "public", "python", "script.py"),
  "arg1",
  "--infile",
      "abc.csv", // indentation for clarity, it's not necessary
  "--encrypt",
      "true",
  "--keyfile",
      "xyz.bin",
  "1234",
  "WOW",
  "path",
]);
原始脚本类似于在命令提示符下运行此脚本:

python script.py arg1 "--infile abc.csv" "--encrypt true" "--keyfile xyz.bin" 1234 WOW path
python script.py arg1 --infile abc.csv --encrypt true --keyfile xyz.bin 1234 WOW path
基本上,您传递的参数名为
--infle abc.csv
,值为
--encrypt true
。这不是你想要的。你想要的是: