我想从 txt 文件中打印唯一密码和 19 个随机密码。我怎样才能使这项工作?

I want to print the unique password and 19 random passwords from the txt file. How can I make this work?

from random import shuffle 
print('give me your password') 
password = input()
def generator():
    g = open('Desktop/COWRIE/passwords.txt', "r")
    passwords = g.read().split("\n")
    shuffle(passwords)
    g.close()
    txt = print ('YOUR HONEYPOT IS :','\n')
    for i in range(1,20):
        passwords[i]
        print(passwords[i])
        
        
if __name__ == "__main__":
    generator()

你可以有一个介于 0 到 len-1 之间的集合和随机索引 然后你可以添加设置随机密码,直到设置的长度为 19

from random import shuffle, randrange

def generator():
    g = open('passwords.txt', "r")
    passwords = g.read().split("\n")
    shuffle(passwords)
    g.close()
    l =len(passwords)-1
    txt = print('YOUR HONEYPOT IS :', '\n')
    s =set()
    while len(s)<19:
        i = randrange(l)
        s.add(passwords[i])

    for p in passwords:
        print(p)


if __name__ == "__main__":
    generator()

您的意思是要将用户输入的密码与文件中的另一个 19 混合使用吗?

from random import shuffle 

def generator():
    password = input('give me your password: ')
    with open('Desktop/COWRIE/passwords.txt', "r") as g:
        passwords = g.read().split("\n")

    shuffle(passwords)
    passwords = passwords[:19]
    passwords.append(password)
    shuffle(passwords)

    print ('YOUR HONEYPOT IS :\n')
    for pw in passwords:
        print(pw)
        
if __name__ == "__main__":
    generator()