Как мне написать плавающий список списков в файл на Python - PullRequest
8 голосов
/ 14 мая 2009

Мне нужно записать серию матриц в простой текстовый файл из python. Все мои матрицы находятся в формате с плавающей точкой, поэтому file.write () и file.writelines ()

не работают. Есть ли способ преобразования, который я могу использовать, который не позволяет мне перебирать все списки (матрица = список списков в моем случае), преобразуя отдельные значения?

Полагаю, я должен уточнить, что это не должно выглядеть как матрица, а просто связанные значения в легко разбираемом списке, о чем я буду читать позже. Все в одной строке на самом деле может сделать это проще!

Ответы [ 5 ]

11 голосов
/ 14 мая 2009
m = [[1.1, 2.1, 3.1], [4.1, 5.1, 6.1], [7.1, 8.1, 9.1]]
file.write(str(m))

Если вы хотите больше контроля над форматом каждого значения:

def format(value):
    return "%.3f" % value

formatted = [[format(v) for v in r] for r in m]
file.write(str(formatted))
9 голосов
/ 14 мая 2009

у меня работает следующее:

with open(fname, 'w') as f:
    f.writelines(','.join(str(j) for j in i) + '\n' for i in matrix)
5 голосов
/ 14 мая 2009

Почему бы не использовать рассол ?

import cPickle as pickle
pckl_file = file("test.pckl", "w")
pickle.dump([1,2,3], pckl_file)
pckl_file.close()
1 голос
/ 04 января 2011

для строки в матрице: file.write ("" .join (map (str, row)) + "\ n")

Это работает для меня ... и записывает вывод в матричном формате

1 голос
/ 18 октября 2010
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']

На данный момент вы можете посмотреть файл 'delme.txt' с помощью vi

vi delme.txt
  1 (lp0
  2 S'hello'
  3 p1
  4 aS'world'
  5 p2
  6 a.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...