Python - Archivos y listas Python

 
Vista:
sin imagen de perfil

Archivos y listas Python

Publicado por Jorge (2 intervenciones) el 19/09/2017 09:00:19
Hola a todos, la cuestión es que necesito hacer un programa que de un archivo recibe listas como estas:
[1, 32, -23]
[2, 42,43]
.
.
.
[16000, -32, 65]
En total son 16 mil listas. Lo que quiero hacer es que en un archivo nuevo vuelva a escribir el primer numero y a los otros dos se les aplique la funcion coseno.

De modo que el nuevo archivo tenga listas asi:
[1, 0.8, 0.9]
[2, 0.7, 0.7]
.
.
.
[16000,0.8, 0-4]

Empece con esto, de modo que con el for itero para cada linea y separo los numeros con el split. Pero a partir de ahi no se como seguir.

Espero haberme explicado, les agradezco su ayuda.
1
2
3
4
5
6
7
8
9
10
11
12
datos1=[]
 
file = open('coordenadas.txt','r')
#Abre archivo y lo lee
 
file.readline()
#Saca primer linea del archivo, son encabezados que no interesan
for line in file:
 
	#print(line.split(','))
	datos1.append(line.split(','))
	print(datos1)
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 José María
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Archivos y listas Python

Publicado por José María (245 intervenciones) el 19/09/2017 13:03:50
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
26
27
28
29
30
31
32
33
34
35
import math
 
datos1=[]
 
 
 
file = open('coordenadas.txt','r')
nuevo = open('nuevo.txt', 'w')
 
#Abre archivo y lo lee
 
file.readline()
 
#Saca primer linea del archivo, son encabezados que no interesan
 
for line in file:
    # le quitamos los corchetes:
    linea = line.replace(']', '').replace('[', '')
    # separamos los números
    numeros = linea.split(',')
    # el valor lo lee como carácter. Hay que pasarlo a número.
    # entiendo que los datos son enteros
    angulo1 = int(numeros[1])
    angulo2 = int(numeros[2])
    # suponiendo que los grados son en sexagesimales: hay que pasarlos a radianes
    angulo1 = math.radians(angulo1)
    angulo2 = math.radians(angulo2)
 
    valor1 = round(math.cos(angulo1), 4)
    valor2 = round(math.cos(angulo2), 4)
    fila = '[%s, %s, %s]\n' % (numeros[0], valor1, valor2)
    nuevo.write(fila)
 
nuevo.close()
file.close()
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
sin imagen de perfil

Archivos y listas Python

Publicado por Jorge (2 intervenciones) el 02/10/2017 02:10:11
Gracias !!!
Fue de mucha ayuda
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