我有多个lua文件,其中包含我想通过Python提取的信息。为了在Python中使用Lua,我使用了lunatic-python,但这不是一个要求-如果您有其他方法也可以。在
lua文件是这样的:
source = {
licences = {
"GPL",
"MIT",
},
env = {
MYTOOL_VERSION = "1.2.3",
OTHER_KEY = "OTHER_VALUE",
},
some_other_keys = {
...
},
}
我感兴趣的值是source.env.MYTOOL_VERSION
,而{VERSION
的键的值”。我读了一些关于Lua中tables
概念的教程(这对我来说还是有点奇怪),我想函数next
或{
而不是
k, v = next(source.env)
似乎x
现在只包含键,而不包含值。当使用pairs
而不是next
时,我得到了一个函数,但我不知道如何调用它。在
我的Pythonscript当前如下所示:
import lua
with open(project_path) as f:
script = f.read()
lua.execute(script)
i = 1
licences = []
while True:
data = lua.globals().source.licences[i]
if data is None:
break
licences.append(data)
i += 1
version = lua.eval('source.env[next(source.env)]') if lua.globals().source.env is not None else 'unkown',
它只获取env
表中任何键的值,而不一定是包含VERSION
的键的值。在
那么,什么是一个优雅的解决方案来获取这个文件的所需数据,以便与Python一起使用呢?在
如果你执行这个脚本
然后eval
version(source.env)
,我希望它为您返回1.2.3相关问题 更多 >
编程相关推荐