zoukankan      html  css  js  c++  java
  • 随机产生一个手机号,保证不重复

    import random
    import os.path
    
    def get_mobile_no(mobile_no_file_path):
    
        mobile_no =""
        prifix =[135,136,137,138,150,159,188]
    
        while 1:
    #随机选择一个开头 mobile_prifix
    =random.choice(prifix)
    #随机生成后八位 mobile_postfix
    =random.randint(10000000,99999999)
    #拼接 mobile_no
    =str(mobile_prifix)+str(mobile_postfix)
    #判断文件是否存在
    try: with open(mobile_no_file_path,"a+") as fp:
    #判重逻辑
    if mobile_no in fp.read(): continue
    #写入文件 fp.write(mobile_no+" ") break except Exception as e: with open("no.txt","a+") as fp: if mobile_no in fp.read(): continue fp.write(mobile_no+" ") break return mobile_no print(get_mobile_no("d:\no2.txt"))

    生成八位随机数也可以用zfill

    Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。

    代码改动:

    import random
    import os.path
    
    def get_mobile_no(mobile_no_file_path):
    
        mobile_no =""
        prifix =[135,136,137,138,150,159,188]
    
        while 1:
            mobile_prifix =random.choice(prifix)
            mobile_postfix =str(random.randint(0,99999999)).zfill(8)#从0开始,用zfill生成八位数
            mobile_no =str(mobile_prifix)+str(mobile_postfix)
            try:
                with open(mobile_no_file_path,"a+") as fp:
                    if mobile_no in fp.read():
                        continue
                    fp.write(mobile_no+"
    ")
                    break
            except  Exception as e:
                with open("no.txt","a+") as fp:
                    if mobile_no in fp.read():
                        continue
                    fp.write(mobile_no+"
    ")
                    break
        return mobile_no
    
    print(get_mobile_no("d:\no2.txt"))

    遗留问题:用列表序列化做?

  • 相关阅读:
    diff命令
    vsftp建立虚拟用户不同目录分配不同权限操作步骤详解
    vsftpd配置文件详解
    vsftp 详解鸟哥版
    vsftp 虚拟用户
    xfs文件系统磁盘配额
    磁盘配额
    磁盘配额实例详解
    Linux 文件服务---------- nfs Server
    [转]Win7 UAC的安全、兼容及权限
  • 原文地址:https://www.cnblogs.com/wenm1128/p/10673388.html
Copyright © 2011-2022 走看看