当我运行以下代码并打开名为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')
您只生成一个密码,在循环之外。每次迭代生成一个新密码:
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
字符串不会在每次你把它写入文件时被重新创建,而不显式地创建一个新的字符串。