Python - DIVIDIR EN COLUMNAS DATOS DE UN FICHERO CON UNA SOLA FILA DE DATOS

 
Vista:

DIVIDIR EN COLUMNAS DATOS DE UN FICHERO CON UNA SOLA FILA DE DATOS

Publicado por sousa (1 intervención) el 17/02/2015 22:57:42
Hola! soy nueva por aquí. Estoy empezando a programar en python y tengo un fichero de datos bastante lioso. Tras conseguir abrirlo, y extraer lo que me interesaba, los datos me salen todos en una fila, por ejemplo:
N:
1
5
8
4
2
S:
5
6
1
7
..

Lo que me interesa es separar los datos de la N en una columna, los de S en otra y así sucesivamente. Puede parecer una tontería pero, el archivo origen era de la forma:
0101 1V 5V 8V......
0102 5V 6V..
0205 0.3V 2V...
0206 ..........
la N que yo pongo corresponde, por ejemplo, a 0101 (es un código) y la S puede ser a 0102, por ejemplo, con lo que tuve que filtrar (para descartar las líneas de 0205 y demás) y hacer un split('V') para cada línea...

Al final llegué al formato del principio pero me interesa que cada N, S aparezca en columnas distintas y no soy capaz porque tengo bucles de if tales como (if line.startswith('0101'):) que me complican el asunto (al menos a mí que soy nueva aún en python).
¿Alguna idea?? cada "columna" que quiero obtener tiene 48 valores, serían todas iguales...N tiene 48 valores, S también, etc.

Muchas gracias! estoy bastante desesperadilla ya :S

Un saludo!
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
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

DIVIDIR EN COLUMNAS DATOS DE UN FICHERO CON UNA SOLA FILA DE DATOS

Publicado por xve (1646 intervenciones) el 18/02/2015 08:54:26
Hola Sousa, haber si te sirve este código de ejemplo que te he preparado
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
valores="""N:
1
5
8
4
2
S:
5
6
1
7"""
 
cadena=""
lista=[]
for valor in valores.splitlines():
    if ":" in valor:
        if cadena:
            lista.append(cadena)
        cadena=valor.strip()
    else:
        cadena+=valor.strip()
if cadena:
    lista.append(cadena)
 
print lista

Devuelve una lista así: ['N:15842', 'S:5617']

Coméntanos si te sirve, ok?
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