0. 前言

在python中执行js文件,并向其中传递参数,注意,是向整个js文件传递参数,而不是向其中的函数

1. 方法一

该方法会执行整个js文件,并将其中的输出结果作为返回值

1
result = subprocess.run(["node", "t4.js", id,pageNo,ts], capture_output=True, text=True)

image-20231028155015692

1.1 测试案例

1.1.1 js文件

js文件中参数接受形式

1
2
3
4
const args = process.argv.slice(2);
const id = args[0];
const page = args[1];
const ts = args[2];

1.1.2 python文件

python中调用js代码案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import subprocess
import json
import re
# 定义要传递的参数
# id = "12345"
id="2090350703"
pageNo='17'
ts='465465498'
# 启动一个新的子进程,并执行JavaScript文件
result = subprocess.run(["node", "t4.js", id,pageNo,ts], capture_output=True, text=True)

# 输出子进程的标准输出结果
print('==============')
output = result.stdout.strip()
output = output.replace("'", '"')
output = output.replace("encText:", '"encText":')
output = output.replace("encSecKey:", '"encSecKey":')
print(output)
print('==============')

image-20231028155249238