天天看点

使用Python生成独一无二的字符串一、uuid简介二、生成随机字符串

【原文链接】使用Python生成独一无二的字符串

文章目录

  • 一、uuid简介
  • 二、生成随机字符串

一、uuid简介

  • uuid.uuid1() 基于MAC地址、时间戳、随机数来生成唯一的uuid
  • uuid.uuid2() 基于分布式计算环境DCE(python中没有该函数),算法与uuid1相同,但是将时间戳的前四位换成posix的UID
  • uuid.uuid3() 基于计算名字与命名空间,同一命名空间不同名字结果不同,同一名字不同命名空间结果不同,但是相同名字相同命名空间会是结果一直
  • uuid.uuid4() 基于(伪)随机数,有一定的重复概率
  • uuid.uuid5() 基于名字,与算法uuid3大致相同

二、生成随机字符串

通过上述uuid简介,可以得出使用uuid.uuid1()基本上可以做到独一无二的随机字符串

比如如下代码,连续生成10个随机字符串,并打印出来

import uuid

for i in range(10):
    name=str(uuid.uuid1())
    print(name)
           

执行结果如下,可以看出,虽然是同一台电脑几乎同一时间,生成的字符串仍然是不相同的。

使用Python生成独一无二的字符串一、uuid简介二、生成随机字符串

下面可以在代码中增加sleep等待

import uuid
import time

for i in range(10):
    time.sleep(1)
    name=str(uuid.uuid1())
    print(name)
           

增加时间间隔后,可以发现第一列的随机性更大了

使用Python生成独一无二的字符串一、uuid简介二、生成随机字符串

因此,可以放心的使用 uuid.uuid1() 方法生成独一无二的随机字符串