随机密码生成器 Python

2024-04-25 00:02:13 发布

您现在位置:Python中文网/ 问答频道 /正文

当我运行以下代码并打开名为的文件时密码.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')

Tags: 文件代码infromimporttxt密码for
1条回答
网友
1楼 · 发布于 2024-04-25 00:02:13

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

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字符串不会在每次写入文件时都被重新创建,而不会显式地创建新字符串。你知道吗

相关问题 更多 >