栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从Python运行Lua脚本

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从Python运行Lua脚本

您可以使用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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/653339.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号