我有一个文本文件,其中包含字符串格式的元组列表,我需要阅读每一行并将其标准化。我也在将元组转换为浮点型。标准化完成后,需要将标准化数据写入文件。这是为此编写的程序,程序运行正常,但是最终创建了一个大文件,在这种情况下为126MB,而不是几个KB,但显然没有打开。
样本数据
[(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')