我的问题是关于读取 NodeMCU 开发套件中的文本文件(位于我的计算机中)。我可以使用 Lua 脚本在 Ubuntu 终端中读取文件内容。在这里,我分享我一直用于阅读的代码。两者都在 Ubuntu 终端中运行良好。
第一:
local open = io.open
local function read_file(path)
local file = open(path, "rb") -- r read mode and b binary mode
if not file then return nil end
local content = file:read "*a" -- *a or *all reads the whole file
file:close()
return content
第二个:
local fileContent = read_file("output.txt");
print (fileContent);
function file_exists(file)
local f = io.open(file, "rb")
if f then f:close() end
return f ~= nil
end
-- get all lines from a file, returns an empty
-- list/table if the file does not exist
function lines_from(file)
if not file_exists(file) then return {} end
lines = {}
for line in io.lines(file) do
lines[#lines + 1] = line
end
return lines
end
-- tests the functions above
local file = 'output.txt'
local lines = lines_from(file)
-- print all line numbers and their contents
for k,v in pairs(lines) do
print('line[' .. k .. ']', v)
end
当我使用 Esplorer 将代码发送到 NodeMCU 时,会出现我的问题。但错误发生如下:
attempt to index global 'io' (a nil value)
stack traceback:
applicationhuff.lua:5: in function 'file_exists'
applicationhuff.lua:13: in function 'lines_from'
applicationhuff.lua:23: in main chunk
[C]: in function 'dofile'
stdin:1: in main chunk
我的一般目的实际上是读取这些数据并通过 MQTT 协议将其发布到 Mosquitto Broker。我对这些话题很陌生。如果有人能处理我的问题,将不胜感激。谢谢你的帮助...