当我运行以下代码并打开名为 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')
答案 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
字符串而不显式创建新字符串。