Форум сайта python.su
0
При запуске скрипта
# -*- coding: utf-8 -*- ''' Поиск e-mail в файлах''' import re, os dir = r'C:\email' email = "info@example.com" directory = os.listdir(dir) for files in directory: fullname = os.path.join(dir, files) if os.path.isfile(fullname): with open(fullname, encoding='utf-8', errors='ignore') as file_in_db: read_file = file_in_db.read() search = re.findall(email, read_file) strings = '\n'.join(search) if len(search) > 0: print (fullname) print("E-mail %s найден" % email) print (strings) else: print ("E-mail не найден")
Traceback (most recent call last):
File "C:\search_email.py", line 14, in <module>
read_file = file_in_db.read()
MemoryError
Офлайн
221
не читать весь файл в память - а кусками. Например прочитали 1мб в память, уже там обрабатывать как вам надо.
Ошибка возникает в случае если файл большой, а возможностей памяти или интерпретатора не хватает.
Офлайн
0
Я это понял
Но не знаю как это сделать - не хватает знаний
Офлайн
1
Moi5es
Но не знаю как это сделать - не хватает знаний
with open(fullname, encoding='utf-8', errors='ignore') as file_in_db: read_file = file_in_db.read()
with open(fullname, encoding='utf-8', errors='ignore') as file_in_db: for sting in file_in_db: search = re.findall(email, string) strings = '\n'.join(search) if len(search) > 0: print (fullname) print("E-mail %s найден" % email) print (strings)
Офлайн
0
Спасибо, работает.
Офлайн