ubuntu

ubuntu里js与python如何交互

小樊
44
2025-09-12 22:38:14
栏目: 编程语言

在Ubuntu系统中,JavaScript和Python可以通过多种方式实现交互。以下是一些常见的方法:

  1. 使用Node.js的child_process模块:

Node.js允许你使用child_process模块来启动子进程,从而运行Python脚本。你可以通过标准输入输出(stdin/stdout)与Python脚本进行通信。

示例:

Python脚本(script.py):

import sys

def main():
    input_data = sys.stdin.read()
    result = input_data * 2
    print(result)

if __name__ == "__main__":
    main()

JavaScript代码(script.js):

const { spawn } = require("child_process");

const python = spawn("python3", ["script.py"]);

python.stdin.write("5\n");
python.stdin.end();

python.stdout.on("data", (data) => {
  console.log(`Python script output: ${data}`);
});
  1. 使用HTTP API:

你可以创建一个Python Web服务(例如使用Flask或Django框架),然后使用JavaScript(例如使用Ajax或Fetch API)与之通信。

示例:

Python脚本(app.py):

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route("/multiply", methods=["POST"])
def multiply():
    data = request.json
    input_data = data["input"]
    result = input_data * 2
    return jsonify({"result": result})

if __name__ == "__main__":
    app.run(debug=True)

JavaScript代码(script.js):

async function multiply() {
  const input_data = 5;
  const response = await fetch("http://localhost:5000/multiply", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ input: input_data }),
  });
  const data = await response.json();
  console.log(`Python script output: ${data.result}`);
}

multiply();
  1. 使用WebSocket:

你可以使用WebSocket在JavaScript和Python之间建立一个实时双向通信通道。在Python端,你可以使用websockets库;在JavaScript端,你可以使用原生的WebSocket API。

示例:

Python脚本(server.py):

import asyncio
import websockets

async def multiply(websocket, path):
    input_data = await websocket.recv()
    result = int(input_data) * 2
    await websocket.send(str(result))

start_server = websockets.serve(multiply, "localhost", 8765)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

JavaScript代码(script.js):

const socket = new WebSocket("ws://localhost:8765");

socket.onopen = () => {
  socket.send("5");
};

socket.onmessage = (event) => {
  console.log(`Python script output: ${event.data}`);
};

这些方法可以帮助你在Ubuntu系统中的JavaScript和Python之间实现交互。你可以根据项目需求选择合适的方法。

0
看了该问题的人还看了