Memory Error python

Здраствуйте всем, писал код который должен считывать информацию и выводить совпадения из .txt, и нескольких .csv файлов

Сам код:

user = input('Введи айди:')
        os.chdir('bd')
        with open('data.txt', encoding='utf-8') as f:

            result  = f.read()
            c = result.count(user)
            print(f'Количество совпадений {c}')
            input('Для вывода нажми Enter...')
            with open('data.txt', encoding='utf-8') as f:
                for line in f:
                    if user in line:
                        print(line.strip())
        def search_in_csv(file_path, search_term):
            count = 0
            found_rows = []
            with open(file_path, newline='', encoding='utf-8') as csvfile:
                csvreader = csv.reader(csvfile)
                for row in csvreader:
                    found = False
                    for value in row:
                        if search_term.lower() in value.lower():
                            found = True
                    if found:
                        count += 1
                        found_rows.append(row)

            print(f"Количество совпадений: {count}")
            input('Для вывода нажми Enter...')


            for row in found_rows:
                print(*row, sep='|')

        for name in 'part1', 'part2':
            format_bd = 'csv'
            delimiters = '.'
            result = name + delimiters + format_bd
            search_term = user
            search_in_csv(result, search_term)

Ошибка:

Traceback (most recent call last):
  File "C:\Users\zisho\Desktop\spiydex\main.py", line 49, in <module>
    result      = f.read()
  File "C:\python\lib\codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
MemoryError

По комментариям попытался сделать новый код для открытия txt файла, но теперь проблемы с табуляцией хотя все вроде нормально новый код:

import os

user = input('Введи айди:')
os.chdir('bd')
with open('data.txt', encoding='utf-8') as f:
    for line in f:
        result  = f.line()
        c = result.count(user)
        print(f'Количество совпадений {c}')
        input('Для вывода нажми Enter...')
        if user in line:
            print(line.strip())

Ошибка:

line 11                                                                                                                                                                                       
    if user in line:                                                                                                                                                                                                                                   
TabError: inconsistent use of tabs and spaces in indentation

Ответы (1 шт):

Автор решения: CrazyElf

Вы можете без проблем посчитать число совпадений в отдельных строках, а не сразу во всём файле, который, видимо, не помещается целиком в памяти:

c = 0
with open('data.txt', encoding='utf-8') as f:
    for line in f:
        c += line.count(user)
print(f'Количество совпадений {c}')
input('Для вывода нажми Enter...')

→ Ссылка