Использование python записи списка кортежей в файле - PullRequest
0 голосов
/ 04 марта 2020

У меня есть список кортежей вроде [(1,2), (2,9), (11,3)]. Я хочу записать его в файл и снова прочитать в том же формате, т.е. он должен быть в массиве кортежей с целыми числами.

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

Это хорошая задача для pickle , который сериализует python объектов

import pickle

# save the array to file (with pickle)
myarray = [(1,2),(2,9),(11,3)]
pickle.dump(myarray,open('myarray.pkl', 'wb'))

# load the array to file
myarray_loaded = pickle.load(open('myarray.pkl', 'rb'))
print(myarray_loaded)
0 голосов
/ 04 марта 2020

Один из способов сделать это - использовать pickle , а затем записать протравленный объект в файл, чтобы вы могли прочитать файл и снова распаковать его. Помните, что pickle создает байт, а не строку.

import pickle

v = [(1, 2), (2, 9), (11, 3)]

with open(path_to_file, "wb+") as f:
    f.write(pickle.dumps(v))

# Reading it back   
with open(path_to_file, "rb") as f:
    print(pickle.loads(f.read()))

# [(1, 2), (2, 9), (11, 3)]

...