es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Segundo objeto en la matriz ignorado (Godot)

Tengo un archivo .csv que contiene puntajes. Esto es lo que parece:

"nombre",10

El archivo .csv se analiza con esta función:

python
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' (en base: PoolStringArray)

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Basándonos en el fragmento de código proporcionado, el archivo .csv tiene dos columnas: la primera columna contiene el nombre de la persona que obtuvo la puntuación y la segunda columna contiene la puntuación (un número). Sin embargo, la función get_csv_line() solo lee la primera columna del archivo .csv (el nombre) y lo guarda en line[0]. Cuando el código intenta acceder a line[1], arroja un error ya que no existe una segunda columna en line.

    Para solucionar esto, el código debería usar la función get_csv_array() en su lugar. Esta función lee toda la fila (como un arreglo) del archivo .csv, por lo que ambas columnas (nombre y puntuación) pueden ser accedidas utilizando los índices 0 y 1, respectivamente.

    Aquí está el código actualizado:

    func _ready():
        var file = File.new()
        file.open("user://scores.csv", File.READ)
        while !file.eof_reached():
            line = file.get_csv_array()
            text = text + "%s: %s\n" % [line[0], line[1]]
        file.close()
    

    Ahora, line[1] contendrá el valor de la puntuación y el código imprimirá tanto el nombre como la puntuación de cada persona en el archivo .csv.

Comments are closed.