python_写一个自动生成密码文件的程序

需求:写一个自动生成密码文件的程序
    1、你输入几,文件里面就给你产生多少条密码   //循环
    2、密码必须包括,大写字母、小写字母、数字、特殊字符  //random.choice(string模块取字符)
    3、密码不能重复        //集合set()
    4、密码都是随机产生的         //random.choice()
    5、密码长度6-11      //random.randrange()
import random,string

num=input('你想生成多少条密码:').strip()
pwds=set()#存放密码的集合

if num.isdigit():
    num=int(num)
    while len(pwds) != num:#当集合长度不等于密码条数时执行
        #生成密码必须包含的大小写字母、数字、特殊字符
        pwd_lower=random.choice(string.ascii_lowercase)
        pwd_upper=random.choice(string.ascii_uppercase)
        pwd_dig=random.choice(string.digits)
        pwd_pun=random.choice(string.punctuation)

        # 生成密码长度、密码取值范围的字符集
        pwd_len = random.randrange(6, 11)
        character=string.ascii_lowercase+string.ascii_uppercase+string.digits+string.punctuation

        pwd_remain=random.sample(character, pwd_len-4)#随机取剩余的密码字符, 返回结果:list
        pwd=pwd_remain+[pwd_lower,pwd_upper,pwd_dig,pwd_pun]#将随机取的5组密码字符放在一个list里
        random.shuffle(pwd)#用random.shuffle()打乱list元素顺序
        pwd="".join(pwd)#list转str
        pwds.add(pwd+'\n')
    else:
        open('password.txt', 'w').writelines(pwds)##当集合长度等于密码条数时, 集合内容写入文件
else:
    print("请输入数字!")


猜你喜欢

转载自blog.csdn.net/sylvia2016/article/details/79923887