有没有一种方法可以捕获lua中的输出?
我试图捕获例如print('Hello')的输出,并将其存储在变量/表中有没有一种方法可以捕获lua中的输出?,lua,load,lua-5.2,Lua,Load,Lua 5.2,我试图捕获例如print('Hello')的输出,并将其存储在变量/表中 请让我知道这是否可能。如果没有,谢谢回答。您不能直接截取标准输出,但您可以更改全局打印功能: local outputs = {} local function storeOutputs(...) table.insert(outputs, {...}) end local oldPrint = print function print(...) storeOutputs(...) oldPrint(...)
请让我知道这是否可能。如果没有,谢谢回答。您不能直接截取标准输出,但您可以更改全局
打印功能:
local outputs = {}
local function storeOutputs(...)
table.insert(outputs, {...})
end
local oldPrint = print
function print(...)
storeOutputs(...)
oldPrint(...)
end
我不确定是否有办法处理io。写电话。我不知道你想做什么。您似乎在寻求一种截取输出的方法,但与输出无关。在您的示例中,print
不返回任何内容,但load
需要一个字符串或函数参数。我正在尝试捕获例如print('Hello')的输出,并将其存储在变量/表中,很抱歉解释不正确。分配给io.stdout
不会影响io.write()
行为。Lua不使用io.stdout(情况非常类似于\u G
),感谢您如此快速地回答,并且非常符合我的要求@埃戈尔斯克里普图诺夫:糟糕透了。我现在必须删除我答案中的那一部分。可能有一种更复杂的方法,比如重写所有与输出相关的io
函数。@luther-请参阅io.output()