¿Cómo leer en flotadores desde un archivo?

¿Cómo puedo abrir un archivo y leer los flotantes del archivo cuando está en formato de cadena en Python? También me gustaría cambiar los valores de cada flotante y reescribir el archivo con los nuevos valores.

Suponiendo que hay un flotador por línea:

with open("myfile") as f: floats = map(float, f) # change floats with open("myfile", "w") as f: f.write("\n".join(map(str, floats))) 

Si desea más control con el formato, use el método de format de cadena. Por ejemplo, esto solo imprimirá 3 dígitos después de cada período:

  f.write("\n".join(map("{0:.3f}".format, floats))) 

La función “float ()” acepta cadenas como entrada y las convierte en flotantes.

 >>> float("123.456") 123.456 
 def get_numbers(): with open("yourfile.txt") as input_file: for line in input_file: line = line.strip() for number in line.split(): yield float(number) 

Luego simplemente escríbelas cuando hayas terminado.

y como una versión más corta (no probada, escrita desde la cabeza)

 with open("yourfile.txt") as input_file: numbers = (float(number) for number in (line for line in (line.split() for line in input_file))) 

Si quieres leer flotadores de input_num:

 import numpy as np import struct float_size=4 np.array(struct.unpack('<'+str(input_num)+'f', fin.read(float_size*input_num)))