• XSS.stack #1 – первый литературный журнал от юзеров форума

Эффективный способ фильтрации больших баз

hashrate

ripper
КИДАЛА
Регистрация
09.06.2023
Сообщения
21
Реакции
0
Пожалуйста, обратите внимание, что пользователь заблокирован
Всем привет, есть текстовые файлы (10-30гб) со строками которые мне надо отфильтровать - указать мин. и макс. длинну и тд. Есть ли более эффективный способ сделать это чем вот так:

Python:
filtered_passwords = []

with open(source, "r", encoding='utf8') as f:
    for password in f:
        if len(password) >= 8 and len(password) <= 30 and " " not in password and not validators.email(password) and not validators.domain(password) and not validators.iban(password) and not validators.ipv4(password) and not validators.ipv6(password) and not validators.mac_address(password) and not validators.uuid(password):
            filtered_passwords.append(password)

with open("filtered_passwords.txt", "w") as f:
    f.write("".join(str(i) for i in filtered_passwords))
 
Всем привет, есть текстовые файлы (10-30гб) со строками которые мне надо отфильтровать - указать мин. и макс. длинну и тд. Есть ли более эффективный способ сделать это чем вот так:

Python:
filtered_passwords = []

with open(source, "r", encoding='utf8') as f:
    for password in f:
        if len(password) >= 8 and len(password) <= 30 and " " not in password and not validators.email(password) and not validators.domain(password) and not validators.iban(password) and not validators.ipv4(password) and not validators.ipv6(password) and not validators.mac_address(password) and not validators.uuid(password):
            filtered_passwords.append(password)

with open("filtered_passwords.txt", "w") as f:
    f.write("".join(str(i) for i in filtered_passwords))
Если ты ищешь более эффективный способ, то думаю куда быстрее будет с обработкой по чанкам и во многопотоке
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Всем привет, есть текстовые файлы (10-30гб) со строками которые мне надо отфильтровать - указать мин. и макс. длинну и тд. Есть ли более эффективный способ сделать это чем вот так:
В твоем случае выдаст ошибку при переполнении filtered_passwords
 
Идея хорошая. Но разве multiprocessing поможет если все упирается в скорость диска?
перед записью строки есть логическая операция, потому с чанками теоритически минимально, но ускорит процесс обработки
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх