在一些特殊的python应用场景下,需要反向执行javascript代码块或.js代码块。[阅读全文]在python编程中,提供了两个非标准库js2py和PyExecJS,都可以实现在python中运行代码块的效果。1、使用js2py的过程js2py适用于js代码量小的情况。如果用于较长的混淆js代码,在翻译时大概率会报错。#使用pip安装:pipinstalljs2py执行js代码块运行代码importjs2py#导入js2py处理库#创建javascript代码块的python字符串js_code='''vardate=newDate().getTime()'''调用js2py.eval_js函数执行javascript代码块result=js2py.eval_js(js_code)print(result)#1648984478464执行js文件运行代码#创建javascript文件hello_world.js##functionhello_world(name){#returnname;#}hello_world=js2py.eval_js(open('./hello_world.js','r',encoding='utf-8').read())print(hello_world("公众号:Python集中营"))#我是公众号:Python集中营2.PyExecJS的使用使用python代码执行JavaScript代码库,依赖于javascript运行环境。最好安装node.js。与js2py相比,他可以多运行一点js代码。使用pip安装:pipinstallPyExecJSimportexecjs#导入execjs处理库print(execjs.get().name)#获取javascript的默认执行环境#Node.js(V8)我windows上默认的js环境是nodejs,的当然,使用操作系统默认的js环境也是可以的。执行上面刚刚创建的hello_world.js文件。#需要先编译要执行的代码块compile_code=execjs.compile(open('./hello_world.js','r',encoding='utf-8').read())#使用编译后的代码blockcall函数调用js文件中的hello_world函数result=compile_code.call('hello_world','python')print(result)#python也可以使用eval函数调用result=compile_code.eval("hello_world('python')")print(result)#python当然也可以像js2py一样直接执行js代码块。result=execjs.eval('""+newDate().getTime()')print(result)#1648986998002注意:使用execjs执行javascript代码块时,如果使用中文,会出现乱码,并且编码不能自动转换。而当中英文混用时,会出现错误。【精彩往期】Python实现excel数据与mysql数据库互通!python实现超快的窗口截图,自动获取当前活动窗口并显示截图...如何用python制作解压小工具,再也不用下载各种格式的解压软件...python最简单的乌龟画法:奥运五环!知识总结:python办公自动化应该学什么?
