如何将Python for循环生成的多个随机密码以/为分隔符存入文件
问题原因
你现有代码的错误出在两处:
- 生成密码的循环中没有保存所有生成的结果,
password变量每次循环都会被新生成的密码覆盖,循环结束后只保留了最后一个密码 - 写文件时你遍历了单个密码的每个字符,所以分隔符加在了单个字符之间,而不是密码之间
修正后代码
# -*- coding:utf-8 -*- #!/usr/bin/python3 import random chars = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' number = random.randint(4, 10) length = random.randint(4, 18) # 新增列表存储所有生成的密码 password_list = [] for n in range(number): password = '' for i in range(length): password += random.choice(chars) # 生成完成后存入列表 password_list.append(password) with open('randomfile.txt', 'w') as writer: # 直接用/拼接所有密码后写入,不会产生多余的末尾分隔符 writer.write('/'.join(password_list))
效果说明
运行后写入randomfile.txt的内容完全符合需求:多个完整密码之间用/分隔,不会拆分单个密码的字符,也不会在末尾多出多余的分隔符。
内容的提问来源于stack exchange,提问作者Drezzz
相关产品推荐
相关产品推荐

