随机密码生成器python

时间:2014-06-06 21:26:55

标签: python random passwords password-generator

当我运行以下代码并打开名为 pwd.txt 的文件时,它会在所有100行中显示相同的密码

import string
from random import *
characters = string.ascii_letters + string.digits
password =  "".join(choice(characters) for x in range(randint(8,16)))
with open('pwd.txt', 'w') as f:
    for _ in range(100):
        f.write(password + '\n')

1 个答案:

答案 0 :(得分:1)

您只在外部循环中生成一个密码。相反,每次迭代生成一个新密码:

with open('pwd.txt', 'w') as f:
    for _ in range(100):
        password =  "".join(choice(characters) for x in range(randint(8,16)))
        f.write(password + '\n')

当您将表达式写入文件时,表达式不会自动重新评估,您需要显式地一次又一次地运行相同的表达式。

如果您愿意,可以将它放在一个函数中,但需要重复一遍:每次将其写入文件时都不会重新创建password字符串而不显式创建新字符串。