首页 > 解决方案 > 如何在每一行上提取列表的特定部分?

问题描述

我有一个列表,它会吐出这样的信息:['username', 'password'], ['username', 'password'], ['username', 'password']等等..

我希望稍后能够提取特定的用户名和密码。例如: ['abc', '9876'], ['xyz', '1234']

abc并告诉他们密码是9876。然后拉xyz并告诉他们密码是1234

我试图弄乱列表,但我只是在如何做到这一点上画了一个空白。

    lines = []
    with open("output.txt", "r") as f:
        for line in f.readlines():
            if 'Success' in line:
                #get rid of everything after word success so only username and password is printed out
                lines.append(line[:line.find("Success")-1])
    for element in lines:
        #split username and password up at : so they are separate entities
        #original output was username:password, want it to be username, password
        parts = element.strip().split(":")
        print(parts)

我想提取每个用户名,然后如上所述提取他们的密码

运行后的电流输出为['username', 'password']。原始输出文件有我删除的额外信息,这是涉及“成功”的代码所处理的

我想在不硬编码用户名的情况下做到这一点。我正在尝试自动化此过程,以便它贯穿每个用户名并将其格式化"hi [username}, your password is [123]"为所有用户名

然后我希望能够只告诉特定用户他们的密码。例如,我想向用户 abc 发送电子邮件。该电子邮件应仅包含用户 abc 的用户名和密码

标签: python

解决方案


而不是打印parts,将它们附加到列表中。

data = []
for element in lines:
    parts = element.strip().split(":")
    data.append(parts)

然后你可以将这些转换成字典进行查找

username_passwords = dict(data)
print(username_passwords['abc'])

推荐阅读