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

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

Publicado por xve (1230 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