Ошибка памяти в Python. Программа занимает много оперативной памяти - PullRequest
0 голосов
/ 11 мая 2018

Итак, это мой код:

import re

h_file_name="testinp.txt"     #This file is very large approx 64GB size
m_file_name="testinpmap.txt"  #This files size is between 25-30MB

with open(h_file_name, "rb") as f, open(h_file_name+".re.txt", "wb+") as f1, open(m_file_name,"rb") as f2:


    req=""
    s=""
    cols1 = []

    for line in f:
            cols= re.split('[ ]+|[ ]+', line.strip())
            for i in range(len(cols)):
            if str(cols[i]).strip() == "1":
                    cols[i] = "2"
            cols1.append(cols)


    for line2 in f2:

            cols2 = re.split('[ ]+|[    ]+', line2.strip())

            if (cols2[3].strip() != "."):
                    for j in range(len(cols1[i])):
                            if str(cols1[i][j]).strip() == "0":
                                cols1[i][j] = "1"


    for c in cols1:
            req += " ".join(map(str,c))
            req += "\n"

    f1.write(req)

Итак, как вы видите, входной файл очень большой, но я не понимаю, что я читаю файл построчно, тогда почемуя получаю "

Traceback (последний вызов был последним): файл" re_13.py ", строка 37, в req + =" ".join (map (str, c)) MemoryError"

или почему программа занимает слишком много оперативной памяти с самого начала выполнения кода?Как я могу изменить скрипт так, чтобы он занимал минимум памяти и не заканчивался?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...