Форум сайта python.su
file = str(input("Введите путь: ")) base_file_hotmail = "mail.base.hotmail.txt" base_file_mail = "mail.base.mail.txt" base_file_gmail = "mail.base.gmail.txt" hotmail = "@hotmail.com" mail = "@mail.ru" gmail = "gmail.com" with open(file, mode="r", encoding="utf-8") as my_base: with open(base_file_hotmail, mode="w+", encoding="utf-8") as base_mail_hotmail: with open(base_file_mail, mode="w+", encoding="utf-8") as base_mail_mail: with open(base_file_gmail, mode="w+", encoding="utf-8") as base_mail_gmail: for num, line in enumerate(my_base, 1): if hotmail in line: if mail in line: if gmail in line: print("№"+str(num)+" "+line) base_mail_hotmail.write("password:"+line) base_mail_mail.write("password:" + line) base_mail_gmail.write("password:" + line)
Отредактировано sosok43k (Фев. 18, 2017 15:02:17)
Офлайн
sosok43kА у вас и намека нет на сортировку. Нужна фильтрация?
но помогите не сортируются
Офлайн
file = str(input("Введите путь: ")) # запрашивает путь базы base_file_hotmail = "hotmail.base.txt" # папка с названием base_file_mail = "mail.base.txt" # папка с названием base_file_gmail = "gmail.base.txt" # папка с названием hotmail = "@hotmail.com" # переменная отвечающая за поиск почты hotmail mail = "@mail.ru" # переменная отвечающая за поиск почты mail gmail = "@gmail.com" # переменная отвечающая за поиск почты gmail with open(file, mode="r", encoding="utf-8") as my_base: # открытие файла с базой with open(base_file_hotmail, mode="w", encoding="utf-8") as hotmail_base: # создание файла с почтой hotmail with open(base_file_mail, mode="w", encoding="utf-8") as mail_base: # создание файла с почтой mail with open(base_file_gmail, mode="w", encoding="utf-8") as gmail_base: # создание файла с почтой gmail vopros = str.lower((input("Что хотите(gmail,hotmail,mail):"))) # вопрос, какую почту искать if vopros == mail: # искать почту mail for line in my_base: # создание списка в несколько рядом if mail in line: # ищет в базе переменную mail mail_base.write(line) # запись найденного в файл elif vopros == hotmail: # искать почту hotmail for line_1 in my_base: # создание списка в несколько рядом if hotmail in line_1: # ищет в базе переменную hotmail hotmail_base.write(line_1) # запись найденного в файл elif vopros == gmail: # искать почту gmail for line_1 in my_base: # создание списка в несколько рядом if gmail in line_1: # ищет в базе переменную gmail gmail_base.write(line_1) # запись найденного в файл else: print("Вы ввели неправильно") # исключение
Отредактировано sosok43k (Фев. 23, 2017 16:09:44)
Офлайн
file = str(input("Введите путь: ")) # запрашивает путь базы base_file_hotmail = "hotmail.base.txt" # папка с названием base_file_mail = "mail.base.txt" # папка с названием base_file_gmail = "gmail.base.txt" # папка с названием hotmail = "@hotmail.com" # переменная отвечающая за поиск почты hotmail mail = "@mail.ru" # переменная отвечающая за поиск почты mail gmail = "@gmail.com" # переменная отвечающая за поиск почты gmail with open(file, mode="r", encoding="utf-8") as my_base: # открытие файла с базой vopros = str.lower((input("Что хотите(gmail,hotmail,mail):"))) # вопрос, какую почту искать if vopros == mail: # искать почту mail with open(base_file_mail, mode="w", encoding="utf-8") as mail_base: # создание файла с почтой mail for line in my_base: # создание списка в несколько рядом if mail in line: # ищет в базе переменную mail mail_base.write(line) # запись найденного в файл if vopros == hotmail: # искать почту hotmail with open(base_file_hotmail, mode="w", encoding="utf-8") as hotmail_base: # создание файла с почтой hotmail for line_1 in my_base: # создание списка в несколько рядом if hotmail in line_1: # ищет в базе переменную hotmail hotmail_base.write(line_1) # запись найденного в файл if vopros == gmail: # искать почту gmail with open(base_file_gmail, mode="w", encoding="utf-8") as gmail_base: # создание файла с почтой gmail for line_1 in my_base: # создание списка в несколько рядом if gmail in line_1: # ищет в базе переменную gmail gmail_base.write(line_1) # запись найденного в файл else: print("Вы ввели неправильно") # исключение
Офлайн
#!! str не нужен и так строка file = str(input("Введите путь: ")) # запрашивает путь базы #!! Поскольку переменная используется один раз то можно ее # захадкорить в команду open base_file_hotmail = "hotmail.base.txt" # папка с названием base_file_mail = "mail.base.txt" # папка с названием base_file_gmail = "gmail.base.txt" # папка с названием #!! задание предопределенных email практически не имеет смысла # вы все равно пользователя заставляете набирать все имя # нет смысла ограничивать возможные шаблоны (это конечно от постановки задачи зависит) hotmail = "@hotmail.com" # переменная отвечающая за поиск почты hotmail mail = "@mail.ru" # переменная отвечающая за поиск почты mail gmail = "@gmail.com" # переменная отвечающая за поиск почты gmail # !! вложенные with обычно заменяют на один with open(file, mode="r", encoding="utf-8") as my_base: # открытие файла с базой with open(base_file_hotmail, mode="w", encoding="utf-8") as hotmail_base: # создание файла с почтой hotmail # зачем создавать пустые файлы если вы их не будете потом заполнять? with open(base_file_mail, mode="w", encoding="utf-8") as mail_base: # создание файла с почтой mail with open(base_file_gmail, mode="w", encoding="utf-8") as gmail_base: # создание файла с почтой gmail vopros = str.lower((input("Что хотите(gmail,hotmail,mail):"))) # вопрос, какую почту искать # обычно такую переменную называют pattern или template if vopros == mail: # искать почту mail # Сюда оно пройдет только если vopros = "@mail.ru" выбор выше не имеет смысла можно убрать # скорре всего в этом и ошибка # for не создает списков. Это перебор строк for line in my_base: # создание списка в несколько рядом if mail in line: # ищет в базе переменную mail mail_base.write(line) # запись найденного в файл elif vopros == hotmail: # искать почту hotmail # for не создает списков. Эта команда приведет к тому что внешним циклам нечего будет перебирать for line_1 in my_base: # создание списка в несколько рядом if hotmail in line_1: # ищет в базе переменную hotmail hotmail_base.write(line_1) # запись найденного в файл elif vopros == gmail: # искать почту gmail # for не создает списков. Эта команда приведет к тому что внешним циклам нечего будет перебирать for line_1 in my_base: # создание списка в несколько рядом if gmail in line_1: # ищет в базе переменную gmail gmail_base.write(line_1) # запись найденного в файл else: print("Вы ввели неправильно") # исключение
Офлайн
doza_andВас понял, пойду исправлять,спасибо.
Офлайн
doza_andА что делать, если в 2 файла записывается только одна почта с паролем(hotmail,mail),а в (gmail), записывается все почты.
Офлайн
sosok43kДа вы не стесняйтесь, тут вроде все свои. Если я непонятно прокомментировал спрашивайте.
Я конечно понимаю, что я аутист
import re def write_filtered(data,file,pattern): with open(file,"w",encoding="utf-8") as f: for i in data: if pattern in i: f.write(i) with open("infile.txt", "r", encoding="utf-8") as my_base: data = my_base.readlines() for i in ["@hotmail.com", "@mail.ru","@gmail.com"]: write_filtered(data,re.sub(r"[@\.]","_",i)+".txt",i)
Офлайн
sosok43kДа вы не спешите, продумайте план. лучше сейчас обсудить чем бегать туда сюда
пойду исправлять,спасибо.
sosok43k
А что делать, если в 2 файла записывается только одна почта с паролем(hotmail,mail),а в (gmail), записывается все почты.
Онлайн
Отредактировано doza_and (Фев. 23, 2017 17:34:29)
Офлайн
doza_andНу как сказать не большая, база в 22к почт.Я вроде пытаюсь, но чет не получается, но я не сдаюсь и не убегаю от кода)Ваш код - это что-то богоподобное, я мучился над этим 3 часа, а вы решили эту задачу в минуты.Учту ваши советы.Благодарю.Спасибо конечно, но если мне понадобится незаменимая помощь , я к вам обращусь, а так буду дальше совершенствоваться, я просто на время забросил python и забыл про регулярные выражения.Можете ли вы предоставить свои контактные данные, а то очень интересно будет поучиться у вас)
Отредактировано sosok43k (Фев. 23, 2017 17:36:32)
Офлайн