您可以使用a
subprocess来运行Lua脚本并向函数提供参数。
import subprocessresult = subprocess.check_output(['lua', '-l', 'demo', '-e', 'test("a", "b")'])print(result)result = subprocess.check_output(['lua', '-l', 'demo', '-e', 'test2("a")'])print(result)- 在
-l
需要给定库(脚本) - 这
-e
是应该在启动时执行的代码(您的函数)
result的值将是的值
STDOUT,因此只需将返回值写入其中,就可以在Python脚本中简单地读取它。我在示例中使用的演示Lua脚本仅打印了参数:
function test (a, b) print(a .. ', ' .. b)endfunction test2(a) print(a)end
在此示例中,两个文件必须位于同一文件夹中,并且
lua可执行文件必须位于上
PATH。
仅产生一个Lua VM的另一种解决方案
pexpect是以交互模式使用和运行VM。
import pexpectchild = pexpect.spawn('lua -i -l demo')child.readline()child.sendline('test("a", "b")')child.readline()print(child.readline())child.sendline('test2("c")')child.readline()print(child.readline())child.close()因此,您可以
sendline(...)用来向解释器发送命令并
readline()读取输出。读取命令
child.readline()后的第一
sendline()行将打印到该行
STDOUT。



