Сортер на Python | login:mail:password to login:password
И снова я, и снова Python, на этот раз покажу пример самого простого сортера базы login:mail:pass в login:pass.
Для чего? - спросите вы, ну а я отвечу:
- "Допустим вы чекаете на валид базу аккаунтов какого-нибудь сервиса. Что нужно для сервиса? - правильно, нужны данные аккаунта login:pass или же mail:pass, но вот не задача, у вас имеется целая база аккаунтов, но формат ее login:mail:pass и руками ее чистить очень жуткое дело, уххх. И именно в этот момент в помощь приходит сортировщик баз, маленькая программка, с помощью которой можно привести формат базы в нужный вид."
Ну собственно разобрались для чего нужны сортеры и как они бывают полезны в трудную минуту. Сегодня именно сортировщик мы и будем пробовать писать...
Что для этого нам нужно?
- Python 3.8.9 (именно на этой версии я сижу);
- Ручки, желательно не из попки;
- Простой редактор кода (Sublimite Text 3) или же IDE;
Когда установили питон, скачали редактор иль же IDE - мы создаем исполняемый файл python нашей програмки sorter.py. Открываете этот файлик с помощью редактора кода и начинаем творить чудеса друзья мои )))
Для начала нам нужно получить данные из текстовика с базой аккаунтов - для этого мы откроем текстовик и прочтем данные из него, получив список строк.
with open(file='combo.txt', encoding='utf-8') as file:
combo = file.readlines()
Поподробнее и понятней.
Мы открываем TXT combo.txt, в которой заведомо находится не подходящий нам формат строк login:mail:pass и открываем его в нужной кодировке UTF-8, дабы потом не было белиберды всякой непонятной. C помощью функции readlines() - мы получаем список строк с текстовика.
Что дальше ж? - дальше нам надо каждую строку привести в подобающий вид login:pass, а то login:mail:pass фигня какая-то, но как же там это реализовать то - и в этот момент к нам на помощь приходит цикл for. С помощью цикла for мы сможешь пробежаться по каждой строке и произвести необходимые манипуляции.
Когда мы поняли как пробежаться по строкам, нам необходимо форматировать login:mail:pass в login:pass и как же это сделать? - А в этот момент нам необходима функция split(), благодаря split(), указав разделитель строки, мы сможем достать отдельно login и отдельно password.
Ну и под конец мы запишем все в новый текстовик results.txt, в котором уже будет подходящая для нас база login:password.
for line in combo:
login = line.split(':')[0]
password = line.split(':')[2]
with open(file='results.txt', mode='a', encoding='utf-8') as file:
file.write(login + ":" + password.rstrip("\n \t") + "\n")
Ах, да, чтобы избавиться от переноса строки или каких либо табов в строке, мы используем rstrip().
rstrip - функция python, которая удаляет все, указанные, символы справа строки.
Идеально!
Полный код для ленивых + сделал красивенький вывод готовой строки в терминал.
from rich import print as printf
with open(file='combo.txt', encoding='utf-8') as file:
combo = file.readlines() # получаем login:mail:password
for line in combo:
login = line.split(':')[0] # дергаем только логин
password = line.split(':')[2] # аналогично дергаем пароль
printf(f'[green][+][/] {login}:{password.rstrip()}') # красиво выводим в терминал
with open(file='results.txt', mode='a', encoding='utf-8') as file:
file.write(login + ":" + password.rstrip('\n \t') + "\n")