gpt4 book ai didi

Lua单行读取整个文件?

转载 作者:行者123 更新时间:2023-12-01 03:48:33 25 4
gpt4 key购买 nike

有没有只用一行代码就可以吞食文件的技巧?

(“to slup” = 将整个文件读入一个字符串。)

通常我会做以下事情:

local f = io.open("/path/to/file")
local s = f:read("*a")
f:close()

但我想知道是否有更短的方法。

我知道我们可以(在 Lua 5.2 中)执行以下操作:
local s = io.lines("/path/to/file", "*a")()

但是文件会保持打开一段时间,直到垃圾收集器启动(并摆脱闭包 io.lines 返回;我相信这个闭包知道明确关闭文件,但这只能在第二次调用它之后发生,当它知道已达到 EOF 时)。

那么,是否有我缺少的单行解决方案?

最佳答案

标准库中没有这样的函数,但你可以自己定义它:

local function slurp(path)
local f = io.open(path)
local s = f:read("*a")
f:close()
return s
end

或者在 Penlight 中有这样的功能.

关于Lua单行读取整个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com