将Knn csv插入到LUA表

我正在尝试加载包含Knn数据的csv文件(3列没有名称)

例如

4   3   a
1   3   a
3   3   a
4   5   b

我已经能够将文件加载到字符串中。

当我尝试将其移动到表中时,我没有得到错误,但是当我将表打印到屏幕上时,我得到了“nil”的值。

我尝试更改文件的内容,但得到了相同的结果,如果更改为(knn_data),则在所有键中获得了csv的路径地址。

我试图使csv数据出现在索引表中,并呈现其3列。

这是代码:

--load kNN file.

local knn_data = system.pathForFile("knn.csv", system.ResourceDirectory)
local file, errorString = io.open(knn_data, "r")

if not file then
    print("File Error: File Unavailable")
else
    local contents = file:read("*a")
    print(contents)
    io.close(file)
end
file = nil

-- load data into table
dataset = {}
for line in io.lines(knn_data) do
    dataset[#dataset+1] = (contents)

先前附加的代码截图

点赞
用户2858170
用户2858170
否则
  local contents= file:read("*a")
  print(contents)
--io.close(file)
end

在你的 else 语句中,contents 是一个局部变量。在它外面,contentsnil

dataset = {}
for line in io.lines(iknn_data) do
  dataset[#dataset+1] = (contents)

所以 dataset[#dataset+1] = (contents) 等价于 dataset[#dataset+1] = nil

在通用的 for 循环中,line 包含从文件中读取的行。所以实际上你应该使用它来处理。

2019-10-16 08:02:00