【问题标题】:Saving Lua output to the Python string将 Lua 输出保存到 Python 字符串
【发布时间】:2016-06-01 00:43:10
【问题描述】:

我有一个 Lua 表达式,它可以打印一些字符串。例如:print(1+2)。然后,我在 Python 3 中使用 Lupa 库调用这个表达式:

import lupa

lua = lupa.LuaRuntime(unpack_returned_tuples=True)
res = lua.eval('print(1+2)')

当然,resNone,因为这个表达式什么也不返回。但是我需要捕获输出并保存在变量中

这可能吗?我该怎么做?

【问题讨论】:

  • 你试过this吗?不知道lupa是否在乎sys.stdout,但值得一试。
  • @kazemakase,我刚刚尝试过,但它对我不起作用。首先,我将cStringIO 替换为io,因为我正在使用Python 3。所以,当我运行以下代码时:with Capturing() as output: lua.eval('print(1+2)') print(output)我有一个空列表输出。跨度>

标签: python python-3.x lua lupa


【解决方案1】:

我从未使用过 Python,但我认为您需要这样做:

import lupa

lua = lupa.LuaRuntime(unpack_returned_tuples=True)
res = lua.eval('1+2')

res 现在应该是 3,您可以从 Python 打印。 如果你想让 Lua 打印它,你必须使用执行:

res = lua.execute('local v = 1+2 print(v) return v')

(基于具有这些代码示例的类似问题)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 2019-01-05
    • 1970-01-01
    • 2021-12-11
    • 2014-03-21
    • 2023-04-08
    • 2015-06-20
    相关资源
    最近更新 更多