Python создает огромный файл, который не может быть открыт - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть текстовый файл, который содержит списки кортежей в строковом формате, мне нужно прочитать каждую строку и нормализовать ее.Я также конвертирую кортежи в плавающие.После завершения нормализации нормализованные данные необходимо записать в файл.Вот программа, написанная для этого, программы работают нормально, однако в итоге создается огромный файл, в данном случае 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...