Код: Выделить всё
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>
PATTERNSfilecontent< /code> содержит содержимое файла в виде одной строки.
Скрипт работает правильно, но занимает несколько минут для обработки каждого файла из -за большого размера файлов и количества шаблонов. < /p>
Есть ли способ ускорить это, либо путем реструктуризации кода, либо с использованием более эффективной библиотеки или подхода? Например, улучшит ли объединение шаблонов, параллельной обработки или других методов?
Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-python