import random
import string
def activation_code(id,length=10):
prefix = hex(int(id))[2:]+'M'
length = length-len(prefix)
chars = string.ascii_letters+string.digits
return prefix + ''.join([random.choice(chars)for i in range(length)])
def get_id(code):
return str(int(code.upper(),16))
if __name__=='__main__':
for i in range(10,500,35):
code = activation_code(i)
code_id = code.split('M')[0]
id = get_id(code_id)
print (code,id)
关键:随机且唯一,用数字和字母组合,参考网上的写法,就是用数字加分隔符加随机字符串的形式,这样写可以保证唯一,前面的数字转成16进制,然后取0x后面的部分,再加一个分隔符,这样存的时候可以直接找到,保证唯一,简单有效。<p>join([random.choice(chars)for i in range(length)])这个看上去乱七八糟的参数,是一个列表生成器。
list = glob.glob(r'*.txt')#匹配txt文件,*代表任意多字符
list = glob.glob(r'../*.py')#相对路径,匹配以python文件
list = glob.glob(r'?.py')#匹配文件名只有一个字符的python文件
list = glob.glob(r'[0-9].py')#匹配指定范围的字符,[0-9]匹配数字