温馨提示×

ubuntu里js与python如何交互

小樊
51
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