Форум сайта python.su
Привет, буду рад помощи!
Есть .txt с базой вида:
login:password
asdasd-!asd1321@
login2:password2
login3:password3
login+password
login4:password4
login5:password5
login:password
login2:password2
login3:password3
login4:password4
login5:password5
Отредактировано python13 (Июнь 22, 2022 18:48:21)
Офлайн
python13грепом же
Каким образом лучше всего реализовать это?
Офлайн
python13Для начала ударить того кто придумал такой формат хранения логина/пароля байдаркой по голове.
Каким образом лучше всего реализовать это?
Офлайн
python13Выбери все строки в формате
Что мы сделали:
1) Очистили пустые строки
2) Очистили все строки, которые не имеют формат “text:text”
<правильная пара> ::= <строка> <двоеточие> <строка>
python13Для этой задачи ты должен выбрать правильные строки за один проход. Шаблон можешь задать через регулярное выражение (модуль re).
я хотел бы понять, как правильнее всего создавать подобные ‘функции-нормализаторы’
Отредактировано py.user.next (Июнь 22, 2022 21:24:49)
Офлайн
Самое интересное как этот файл вообще считывается. По ходу он руками забивался. А значит что количество строк позволяет его руками вычистить быстрее чем питон выучить.
Офлайн
ZerGДа это макетный файл. На нём, как на макете, пишется скрипт, а скрипт этот потом применяется к гигабайтным файлам. Соответственно, скрипт надо написать оптимально, а сам этот файл нафиг не нужен, он только для написания скрипта существует.
Самое интересное как этот файл вообще считывается. По ходу он руками забивался.
Офлайн
Не суть. Если у меня пароль 4 плюса 4 минуса и все через двоеточие?
Офлайн
ZerGВсё сработает
Если у меня пароль 4 плюса 4 минуса и все через двоеточие?
<правильная пара> ::= <строка> <двоеточие> <строка>
<строка> ::= <буква> | <цифра> | <специальный не двоеточие>
Отредактировано py.user.next (Июнь 22, 2022 23:30:16)
Офлайн
txt = '''login:password asdasd-!asd1321@ login2:password2 login3:password3 login+password login4:password4 login5:password5''' out = '' def check_log(login): """проверяем логин, если норм возвращаем True""" return True def check_pass(password): """проверка""" return True for line in txt.splitlines(): if line.count(':') == 1: login, password = line.split(':') if check_log(login) and check_pass(password): out += '{}:{}\n'.format(login, password) # print(out)
Офлайн
+login6:-:password:
login7::+:password
login8:-:password:
и все пропало
Офлайн