【发布时间】: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)')
当然,res 是None,因为这个表达式什么也不返回。但是我需要捕获输出并保存在变量中。
这可能吗?我该怎么做?
【问题讨论】:
-
你试过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