¿Cómo escribo una lista flotante de listas para archivar en Python?

Necesito escribir una serie de matrices en un archivo de texto plano de python. Todas mis matrices están en formato flotante, por lo que las simples file.write () y file.writelines ()

No funcionan. ¿Hay algún método de conversión que pueda emplear que no me haga recorrer todas las listas (matriz = lista de listas en mi caso) convirtiendo los valores individuales?

Supongo que debo aclarar que no es necesario que se vea como una matriz, solo los valores asociados en una lista fácil de analizar, como leeré más adelante. ¡Todo en una línea puede hacer esto más fácil!

m = [[1.1, 2.1, 3.1], [4.1, 5.1, 6.1], [7.1, 8.1, 9.1]] file.write(str(m)) 

Si desea más control sobre el formato de cada valor:

 def format(value): return "%.3f" % value formatted = [[format(v) for v in r] for r in m] file.write(str(formatted)) 

los siguientes trabajos para mí:

 with open(fname, 'w') as f: f.writelines(','.join(str(j) for j in i) + '\n' for i in matrix) 

¿Por qué no usar pickle ?

 import cPickle as pickle pckl_file = file("test.pckl", "w") pickle.dump([1,2,3], pckl_file) pckl_file.close() 
 import pickle # write object to file a = ['hello', 'world'] pickle.dump(a, open('delme.txt', 'wb')) # read object from file b = pickle.load(open('delme.txt', 'rb')) print b # ['hello', 'world'] 

En este punto, puede ver el archivo ‘delme.txt’ con vi

 vi delme.txt 1 (lp0 2 S'hello' 3 p1 4 aS'world' 5 p2 6 a. 

para la fila en la matriz: file.write (“” .join (map (str, row)) + “\ n”)

Esto me funciona … y escribe la salida en formato de matriz