Ниже программа, которая извлекает некоторые определенные значения столбца c из текстового файла, разделенного разделителем "~", выдает ошибку памяти, когда количество записей в текстовом файле составляет около 6 000 000 PLUS. Однако тот же фрагмент работает для меньшего количества записей в текстовом файле. Я пытался использовать списковое понимание, но не смог устранить ошибку памяти. Ниже приведен фрагмент кода:
import os
import csv
print("Analyzing the File!")
tnum = list()
nl = 0
total = list()
fdata = list()
amount = list()
with open(r"C:\Users\aojha\Desktop\20191125\ABC.TXT", "r") as fh:
next(fh)
for line in fh:
line = line.rstrip()
nl+=1
print("Number of records in file are:",nl)
with open(r"C:\Users\aojha\Desktop\20191125\ABC.TXT", "r") as fh:
next(fh)
fdata = [line.split("~") for line in fh]
##print(fdata)
for data in fdata:
tnum.append((data[2][:]).split(" "))
total.append((data[8][:]))
amount.append((data[13][:]))
#print(fdata)
print("Required data from file have been extracted!")}
Пример входных данных в следующем формате:
P ~ LNL ~ 22248370 ~ 50 ~ 22248370 ~ 20190916 ~ 20191112 ~ 20190916 ~ 002 ~ Я ~ А ~ Н ~ 003 ~ ~ 01 тысяча шестьсот тридцать восемь ~ 001 ~ 400023 ~ -1552 ~ 20190916 ~ 0200058 ~ 001 ~ Х ~~ TmID ~~~~~ 000 ~ 000 ~ 000 ~~ 000 ~ 000 ~ 000 ~~ 000 ~ 0 ~~~~ N ~~~
Получена следующая ошибка:
> Traceback (most recent call last):
File "C:\Users\aojha\Desktop\Python\Random\Type_Count.py", line 23, in <module>
fdata = [line.split("~") for line in fh]
File "C:\Users\aojha\Desktop\Python\Random\Type_Count.py", line 23, in <listcomp>
fdata = [line.split("~") for line in fh]
MemoryError