gpt4 book ai didi

file - Lua:如何将大型 CSV 文件加载到表中并访问它

转载 作者:行者123 更新时间:2023-12-04 04:47:00 26 4
gpt4 key购买 nike

我是 Lua 新手,无法加载如下所示的 csv 文件:

22.74,22.99,23.47,24.44,26.39,30.27,38.05,53.6,84.7,146.9,271.3,520.1,1017.7,2012.89,4003.28,7984.06,15945.63,31868.75,63715.01,127407.52,254792.53

有 21 个值由逗号分隔,行中没有空格。我有数百行。和数百个文件。
我需要在 Lua 的表格中加载这些行,并且能够使用简单的坐标 (i, j) 进行访问。我想用一个数字调用每个数字 cs1、cs2、cs3...cs21 和每一行。

我看过这个功能
    function readwaypoints(filename, numberofwaypoints)
local file = io.open(filename)
local waypoints = {}
for n = 1, numberofwaypoints do
local x, y, z
x = file:read('*n')
y = file:read('*n')
z = file:read('*n')
waypoints[#waypoints+1] = {['x'] = x, ['y'] = y, ['z'] = z}
end
file:close()
return waypoints
end

但它似乎不起作用。或者我不知道如何访问数据。

任何人都可以建议我解决我的问题吗?谢谢。

最佳答案

它不起作用,因为 *n期望输入中有一个数字,并会跳过空格,但不会跳过逗号。你需要用 file:read(1) “吃”逗号或类似的东西。

function readwaypoints(filename, numberofwaypoints)
local file = io.open(filename)
local waypoints = {}
for n = 1, numberofwaypoints do
local x, y, z
x = file:read('*n'); file:read(1) --<-- added
y = file:read('*n'); file:read(1) --<-- added
z = file:read('*n'); file:read(1) --<-- added
waypoints[#waypoints+1] = {['x'] = x, ['y'] = y, ['z'] = z}
end
file:close()
return waypoints
end

local waypoints = readwaypoints("waypoints.txt", 20)
print(waypoints[2].x == 24.44, waypoints[1].z == 23.47)

这打印 true true对我来说。您可以使用 waypoints[<number of waypoints>].x 访问这些元素(或 y/z)。

关于file - Lua:如何将大型 CSV 文件加载到表中并访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035482/

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