Короткая программа с некоторой обработкой ошибок:
Создание файла демонстрационных данных:
t = """
emailnumberone@gmail.com:password1
emailnumbertwo@gmail.com:password2
emailnumberthree@gmail.com:password3
emailnumberfour@gmail.com:password4
emailnumberfive@gmail.com:password5
k
: """
with open("f.txt","w") as f: f.write(t)
Анализ данных / сохранение:
def store_in_db(email,pw):
# replace with db access code
# see http://bobby-tables.com/python
# for parametrized db code in python (or the API of your choice)
print("stored: ", email, pw)
with open("f.txt") as r:
for line in r:
if line.strip(): # weed out empty lines
try:
email, pw = line.split(":",1) # even if : in pw: only split at 1st :
if email.strip() and pw.strip(): # only if both filled
store_in_db(email,pw)
else:
raise ValueError("Something is empty: '"+line+"'")
except Exception as ex:
print("Error: ", line, ex)
Вывод:
stored: emailnumberone@gmail.com password1
stored: emailnumbertwo@gmail.com password2
stored: emailnumberthree@gmail.com password3
stored: emailnumberfour@gmail.com password4
stored: emailnumberfive@gmail.com password5
Error: k
not enough values to unpack (expected 2, got 1)
Error: : Something is empty: ': '
Редактировать: В соответствии с Какие символы разрешены в адресе электронной почты? - ':'
может быть частью первой части электронного письма, если оно указано.
Теоретически это позволило бы вводить как
`"Cool:Emailadress@google.com:coolish_password"`
, что приведет к ошибкам с этим кодом.См. Ответ Talip Tolga Sans о том, как по-разному разбить разбиение, чтобы избежать этой проблемы.