Запись данных в файлы - PullRequest
0 голосов
/ 02 июня 2019

Я хочу записать свои проблемные данные из программы в текстовый файл например:

m=4
n=2
mat=[[0,1],[2,3],[3,0],[0,1]]

Я пытался использовать file.write(), но я не знаю, как написать матрицу с этим, потому что он записывает только строковые значения

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Вы можете записать repr() ваших данных и использовать ast.literal_eval(), чтобы проанализировать их обратно в Python, но это будет изобрести пресловутый SquaredWheel (tm), когда у вас уже есть json:

import json

data = {
   "m":4,
   "n":2,
   "mat": [[0,1],[2,3],[3,0],[0,1]]
   }

def save_data(filepath, data):
   with open(filepath, "w") as f:
       json.dump(f, data)

def read_data(filepath):
   with open(filepath, "r") as f:
       return json.load(f)

Это будет работать "из коробки" для всех "базовых" типов, поддерживаемых модулем json Python (строка, целые числа, числа с плавающей запятой, списки, слова, кортежи, логические значения и объект None), и вы можете предоставить ваши собственные кодеры и декодеры json, если вам нужно поддерживать другие типы.

0 голосов
/ 03 июня 2019

Я думаю, вы можете использовать библиотеку numpy для сохранения вашего массива, а затем, если вам нужны значения в вашей программе, вы можете загрузить его и использовать его, также вы откроете txt-файл и увидите значения.

в качестве примера:

import numpy as np
mtx = [[0,1],[2,3],[3,0],[0,1]]
arr = np.array(mtx)
np.savetxt('mytextarray.txt' , arr , delimiter = ',')

тогда вы можете загрузить его:

arr = np.loadtxt('mytextarray.txt' , delimiter=',')
...