无法使用节点在python中读取文件

时间:2019-08-23 06:58:51

标签: python node.js express spawn

我正在节点Web应用程序中运行python,并且试图加载和读取python中的文件,对其进行处理,然后将其吐到node.js中。

当我运行以下python代码时,什么也没发生。

Python

import json
import sys

with open('trainingData.json') as file:
    data = json.load(file)

print(data)
print('hello from python')
sys.stdout.flush()

当我删除with open时,它运行良好。如何在python中读取文件并在node.js中调用该文件?这是节点代码

节点

app.get('/', (req, res) => {
    const spawn = require('child_process').spawn;
    const process = spawn('python', ['./python/script.py', 'Hello', 'World']);
    process.stdout.on('data', data => console.log(data.toString()));

    res.send('he');
});

(当我从终端运行python文件时,它可以正常工作。)

1 个答案:

答案 0 :(得分:0)

您可以使用spawn的cwd(当前工作目录)选项来指定目录。要将其设置为“当前”当前工作目录,请使用__dirname。

const process = spawn('python', ['./python/script.py', 'Hello', 'World'], {cwd: __dirname});