数组中的第二个对象被忽略(godot)

2nd object in array ignored (godot)

我有一个保存乐谱的 .csv 文件。这是它的样子:

"name",10

.csv 使用此函数解析:

func _ready():
    var file = File.new()
    file.open("user://scores.csv", file.READ)
    while !file.eof_reached():
        line = file.get_csv_line()
        text = text + "%s: %s" % [line[0], line[1]] + "\n" ## Invalid get index: '1' (on base: PoolStringArray)

文件必须以新行结尾。结果,您在阅读时会看到两行。第一个符合你的预期 ([name, 10]),第二个是空的,当你试图索引它时会导致错误。

当我测试这个时,最后一行不是一个空数组,而是一个带有单个空字符串的数组。环顾四周,这种行为已经存在了一段时间。但是,我没有发现错误报告或建议,我想知道是否有原因,或者这只是被忽略了。

您可以查看您得到的列数。例如,下面的代码将跳过任何字段不足的行:

    if line.size() < 2:
        continue

并且此代码将专门针对额外的行:

    if file.eof_reached() and line.size() == 1 and line[0] == "":
        break