Итак, это мой код:
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"
или почему программа занимает слишком много оперативной памяти с самого начала выполнения кода?Как я могу изменить скрипт так, чтобы он занимал минимум памяти и не заканчивался?