У меня есть текстовый файл, который содержит списки кортежей в строковом формате, мне нужно прочитать каждую строку и нормализовать ее.Я также конвертирую кортежи в плавающие.После завершения нормализации нормализованные данные необходимо записать в файл.Вот программа, написанная для этого, программы работают нормально, однако в итоге создается огромный файл, в данном случае 126 МБ по сравнению с несколькими КБ, которые, очевидно, не открываются.
Пример данных
[(13, 58), (13, 95), (0, 109), (13, 146), (39, 183), (26, 109), (39, 131), (52, 161), (26, 168), (39, 197), (52, 234), (52, 161), (78, 190), (104, 227), (26, 139)]
Для преобразования указанной выше строки я использую функцию eval (), которая преобразует строку в список.
Может кто-нибудь выяснить, что является причиной этой проблемы?
data = os.path.join(datapath, filename)
norm_data = []
with open(data, 'r') as rf:
data = rf.readlines()
for d in data:
d = eval(d)
temp_list = []
for n in d:
(a, b) = float(n[0]),float(n[1])
temp_list.append((a, b))
norm_data.append(temp_list)
d = []
d_temp = []
rows = len(norm_data)
cols = len(norm_data[0])
with open(os.path.join(datapath, target_file), 'w+') as wf:
for i in range(rows):
for j in range(cols):
temp = np.subtract(norm_data[i][j], norm_data[i][0]) /
np.linalg.norm(np.subtract(np.mean([norm_data[i]
[8],norm_data[i][11]]), norm_data[i][0]))
d_temp.extend(temp)
d.append(d_temp)
wf.write(str(d)+'\n')