File io 在Lua中,如何将控制台输出打印到文件(管道)中,而不是使用标准输出?

File io 在Lua中,如何将控制台输出打印到文件(管道)中,而不是使用标准输出?,file-io,io,lua,File Io,Io,Lua,我使用Torch7和Lua编程语言。我需要一个命令,将控制台的输出重定向到文件,而不是打印到shell中。 例如,在Linux中,键入以下内容时: $ls>dir.txt 系统将把命令“ls”的输出打印到文件dir.txt,而不是打印到默认的输出控制台。 我需要一个类似的Lua命令。有人知道吗 [EDIT]一位用户向我建议,此操作称为管道。因此,问题应该是:“如何在Lua中制作管道?” [EDIT2]我将使用此#命令执行以下操作: $torch“我的_程序”#printed_output.txt

我使用Torch7和Lua编程语言。我需要一个命令,将控制台的输出重定向到文件,而不是打印到shell中。 例如,在Linux中,键入以下内容时:

$ls>dir.txt

系统将把命令“ls”的输出打印到文件dir.txt,而不是打印到默认的输出控制台。 我需要一个类似的Lua命令。有人知道吗

[EDIT]一位用户向我建议,此操作称为管道。因此,问题应该是:“如何在Lua中制作管道?”

[EDIT2]我将使用此#命令执行以下操作:

$torch“我的_程序”#printed_output.txt

请看这里->


io.write
似乎就是您要寻找的内容。

Lua没有从控制台输出创建文件的默认功能。 如果你的应用程序记录它的输出——你可能要做的——它只会通过修改LuaC++源代码来实现。 如果您的内部系统可以访问控制台的输出,您可以执行类似的操作(并将其设置为计时器,使其每隔25ms左右运行一次):

注意,控制台输出函数必须将控制台的输出存储在表中。
要在最后清除控制台,只需执行
os.execute(“cls”)

我相信这通常被称为将输出“管道化”到文件。仅提及这一点,因为它可能会帮助您在web/SO搜索中找到相关结果。您能否给出一个示例代码,说明如何在Lua中使用它?重复的
dumpoutput = function()
    local file = io.write([path to file dump here], "w+")
    for i, line in ipairs ([console output function]) do
        file:write("\n"..line);
    end
end