如何将stdout重定向到Lua中的文件?

我正在尝试将Lua(5.1)中的stdout重定向到文件而不是控制台.

有一个第三方API(我无法修改)包含一个打印出序列化数据集的函数(我不知道打印哪个函数,假设某种print())

这个数据太冗长,不适合我必须使用的屏幕(无法滚动),所以我希望将函数的输出定向到文件而不是控制台.

我没有能力修补或操纵Lua版本.

我的想法是使用记录不良的io.output()文件将stdout更改为文件,但这似乎根本不起作用.

 io.output("foo")   -- creates file "foo", should set stdout to "foo"?
 print("testing. 1, 2, 3") -- should print into "foo", goes to console instead

有没有人知道任何方法强制功能输出到文件,或强制所有标准输出到文件而不是控制台? TIA.

最佳答案 您需要使用
io.write方法而不是打印.它以类似的方式工作,但不使用制表符分隔参数. io.write尊重io.output,但打印不尊重.

点赞