Python - 'list' object has no attribute 'strip'

 
Vista:
Imágen de perfil de Pau
Val: 5
Ha disminuido su posición en 18 puestos en Python (en relación al último mes)
Gráfica de Python

'list' object has no attribute 'strip'

Publicado por Pau (3 intervenciones) el 01/07/2019 23:02:33
Hola, muy buenas!
soy nuevo en esto de programar y tengo problemas para abrir un archivo csv.
El archivo está en formato csv, con los datos divididos en columnas de 3. Devo separar la primera primera columna x, la segunda y, la tercera z en forma de listas.
Con archivos .txt lo he hecho con las funciones split y strip para separar las filas y los elementos usando los delimitadores tipo ' ; ' que llevan el archivo, pero aquí no me funciona.
No sé si podría hacerlo con zip o algo...

El archivo tiene este aspecto:

1;3.1;2.4642857142857144

2;4.9;4.5

3;7.4;6.535714285714286

4;8.5;8.571428571428571

5;10.7;10.607142857142856

6;13.2;12.642857142857142

7;15.9;14.678571428571429


y el código que intento usar es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import csv
 
with open('vectors.csv', 'r') as text:
    lector = csv.reader(text)
    x = []
    y = []
    z = []
    for line in lector:
        stripped = line.strip('\n')
        splitted = stripped.split(';')
 
        x.append(splitted[0])
        y.append(splitted[1])
        z.append(splitted[2])

Perdonen mi ignorancia, estoy empezando :p
y Gracias de antemano!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

'list' object has no attribute 'strip'

Publicado por tincopasan (1082 intervenciones) el 02/07/2019 02:59:19
hola:
es básicamente lo que has hecho, le haría unos cambios:
1
2
3
4
5
6
7
8
9
10
11
12
import csv
 
x = []
y = []
z = []
 
with open('vectors.csv') as text:   #el 'r' no está mal pero sobra, se lee de forma predeterminada como lectura
    lector = csv.reader(text,delimiter=';')
    for linea in lector:                        #    sobra lo que pusiste, salvo que haya entendido mal tu objetivo
        x.append(linea[0])
        y.append(linea[1])
        z.append(linea[2])

te recomiendo que el archivo no tenga líneas en blanco para así evitar una comparación, o sea:

1;3.1;2.4642857142857144
2;4.9;4.5
3;7.4;6.535714285714286
etc.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Pau
Val: 5
Ha disminuido su posición en 18 puestos en Python (en relación al último mes)
Gráfica de Python

'list' object has no attribute 'strip'

Publicado por Pau (3 intervenciones) el 02/07/2019 15:05:59
utilizando la mejora que me has dado y mejorando el programa que guardaba el archivo csv con espacios de más me ha salido sin problema.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar