一、簡介
PyExecJS是一個Python/ target=_blank class=infotextkey>Python庫,它提供了一種在Python中執(zhí)行JAVAScript代碼的方式。它基于ExecJS庫,可以使用多個JavaScript運行時(如Node.js、PhantomJS、JScript等)來執(zhí)行JavaScript代碼。
使用PyExecJS,您可以在Python環(huán)境中執(zhí)行JavaScript代碼,從而利用JavaScript的功能和庫。這對于需要在Python中調(diào)用JavaScript代碼的任務非常有用,例如執(zhí)行一些特定的JavaScript函數(shù)、處理JavaScript生成的數(shù)據(jù)或與JavaScript相關的網(wǎng)頁交互等。
官網(wǎng):
https://Github.com/doloopwhile/PyExecJS
二、安裝
pip install PyExecJS
三、屬性方法
- execjs.get(name):獲取指定名稱的 JavaScript 運行時。它返回一個 JavaScriptContext 對象,您可以使用該對象執(zhí)行 JavaScript 代碼。name 參數(shù)是 JavaScript 運行時的名稱,例如 "Node.js"、"V8" 等
- execjs.eval(source, cwd=None):用于在 JavaScriptContext 對象中執(zhí)行指定的 JavaScript 代碼字符串。它將返回 JavaScript 代碼的執(zhí)行結(jié)果。
- source 參數(shù)是要執(zhí)行的 JavaScript 代碼字符串。
- cwd 參數(shù)是可選的,用于指定當前工作目錄。
import execjs
result = execjs.eval('1 + 2')
print(result)
- execjs.compile(source, cwd=None):用于編譯指定的 JavaScript 代碼字符串并返回一個 JavaScriptContext 對象。這個函數(shù)類似于 execjs.eval,但是它返回一個上下文對象,可以在后續(xù)的調(diào)用中多次使用。
- source 參數(shù)是要編譯的 JavaScript 代碼字符串。
- cwd 參數(shù)是可選的,用于指定當前工作目錄。
import execjs
js_str='''
var a=1,b=2
function test(c=0){
return a+b+c
}
'''
context = execjs.compile(js_str)
print(context.eval('a+b'))
print(context.call('test',4))
四、通過讀取js文件執(zhí)行js
- 創(chuàng)建js文件test.js
import execjs
with open('test.js','r') as js_file:
context = execjs.compile(js_file.read())
print(context.eval('a+b'))
print(context.call('test', 4))
- 創(chuàng)建python文件test.py
import execjs
with open('test.js','r') as js_file:
context = execjs.compile(js_file.read())
print(context.eval('a+b'))
print(context.call('test', 4))