Как оптимизировать поиск в использовании режима по нескольким шаблонам в Python?Python

Программы на Python
Anonymous
 Как оптимизировать поиск в использовании режима по нескольким шаблонам в Python?

Сообщение Anonymous »

У меня есть скрипт Python, который использует несколько регулярных выражений для поиска через содержимое файла. Вот соответствующий фрагмент кода: < /p>

Код: Выделить всё

PATTERNS = {
"email": re.compile(r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b"),
"phone": re.compile(r"\b\d{3}-\d{3}-\d{4}\b"),
"date": re.compile(r"\b\d{4}-\d{2}-\d{2}\b")
}

def readfilecontent(filepath):
with open(filepath,'r', encoding='utf-8', errors='ignore') as file:
return file.read()

filecontent = readfilecontent("path/ToFile")
for key, pattern in PATTERNS.items():
matches = pattern.findall(filecontent)
if matches:
for match in matches:
print(match)
< /code>
PATTERNS
- это словарь, в котором ключ - это имя шаблона, а значение представляет собой предварительно скомпилированный объект REGEX (созданный с использованием re.compile).
filecontent< /code> содержит содержимое файла в виде одной строки.
Скрипт работает правильно, но занимает несколько минут для обработки каждого файла из -за большого размера файлов и количества шаблонов. < /p>
Есть ли способ ускорить это, либо путем реструктуризации кода, либо с использованием более эффективной библиотеки или подхода? Например, улучшит ли объединение шаблонов, параллельной обработки или других методов?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-python

Вернуться в «Python»