基于Python执行lua脚本

一、依赖安装

pip install lupa

二、源码

将lua文件存放在base_path路径,将lua文件名称(不包含后缀名)传递给lua_runner函数即可

import multiprocessing
import lupa

# lua文件存放位置
base_path='D:\\test\\lua'

class LuaFuncion:
    
    # 创建 Lua 运行时环境
    lua = lupa.LuaRuntime(unpack_returned_tuples=True, encoding="utf-8")

    # 通过`lua.globals().lua变量名称=python变量名称`可以将Python的变量、函数、模块等映射成lua的全局变量

    # 尽量用Python的print覆盖lua自身的print,避免字符编码问题
    lua.globals().print = print


    @classmethod
    def lua_runner(cls, name):
        script_file = f"{base_path}/{name}.lua"
        # 打开 Lua 脚本文件并读取内容
        with open(script_file, "r", encoding="utf-8") as file:
            lua_script = file.read()

        # 可以在这里执行一些初始化操作,例如导入其他lua模块等
        # cls.lua.execute(
        #     """
        #     package.path = package.path .. ";../lua/lib/?.lua;../lua/?.lua"
        #     require('script')
        #     require('utils')
        #     """
        # )
        
        # 加载lua文件
        cls.lua.execute(lua_script)
        # 执行start函数
        cls.lua.execute("start()")

三、示例用法

lua文件:

-- example.lua

function start()
    print("Hello from Lua!")
    local x = 10
    local y = 20
    local sum = x + y
    print("Sum:", sum)
end

测试代码:

if __name__=='__main__':
    # 执行example.lua中的start函数
    LuaFuncion.lua_runner("example")

输出结果:

Sum:30

你可能感兴趣的:(Python自动化脚本,python,lua,自动化,rpa)