我目前有一些代码,可以通过字典打印出用户名和密码。输出为username:abc password:12345。现在,我把它们都同时打印出来。我的主要目标是能够根据用户名发送电子邮件给这些用户,但是我当然只希望包括他们的用户名和密码信息。不是全部信息列表。因此,基本上,我希望仅告诉特定用户其密码。例如,我想向用户abc发送电子邮件,并且该电子邮件应仅包含其用户名和密码。然后,我想向用户xyz发送电子邮件,但该电子邮件只应包含用户xyz的密码。我有办法做到这一点吗?
我目前拥有字典印刷中的所有内容。因此,所有用户名和密码都已打印出来。我该如何遍历这些密码并将其密码发送给每个用户?
lines = []
User_Pass = {}
#Open output file and show only lines that contain 'Success'
with open("output.txt", "r") as f:
for line in f.readlines():
#Get rid of everything in line after 'Success'
if 'Success' in line:
lines.append(line[:line.find("Success")-1])
for element in lines:
parts = element.strip().split(":")
User_Pass.update({parts[0] : parts[1]})
for key, value in User_pass.items():
print('Username: ' + key + ' Password: ' + value)
我希望能够通过电子邮件发送每个用户名并告诉他们其密码。我真的不确定如何去做。任何帮助将不胜感激!
答案 0 :(得分:0)
假设您已构建字典,只需向其询问与键相关联的值,即用户名:
user_pw = User_Pass.get(username)
如果用户名不在词典中,则返回None。
建议您研究Python词典中的一些示例。在循环代码中,您也有一些倒退。每当您想以正确的方式遍历字典时,都想使用键(而不是项目)来遍历字典,因此请遍历示例中的所有内容:
for key in User_Pass.keys():
print (key, User_Pass.get(key) )
答案 1 :(得分:0)
仅在遇到“用户名”或“密码”时填写User_Pass
词典:
for element in lines:
key, value = element.strip().split(":")
if key in {"username", "password"}:
User_Pass.update({key: value})
一个简单的演示
lines = [
"fullname:John Doe",
"username:jdoe",
"password:S3cRet",
"age:45",
]
User_Pass = {}
for element in lines:
key, value = element.strip().split(":")
if key in {"username", "password"}:
User_Pass.update({key: value})
print(User_Pass)
您得到:
{'username': 'jdoe', 'password': 'S3cRet'}
请,您应遵循PEP8的命名约定:“ User_Pass” =>“ user_pass”。