python3中的唯一标识值

时间:2018-09-08 17:35:23

标签: python python-3.x uuid uniqueidentifier

我想为python3脚本中的某些脚本生成的文档生成唯一值或uuid(我不在乎它是数字还是十六进制),但这在脚本的多次执行之间应该是唯一的。 / p>

等该脚本可能每两(2)或三(3)天运行一次。我不想两次获得相同的uuid。

我想到的一种简单而实用的方法是使用纪元时间(因为脚本不会在同一秒运行两次),并且它将运行的计算机是64位(2038 problem),但是似乎很简单,就是万无一失。

另一种实现此目的的方法是使用uuid4()。这在执行程序和不同机器之间是否唯一?

2 个答案:

答案 0 :(得分:3)

密码保证

import socket UDP_IP = "127.0.0.1" UDP_PORT = 5005 mylist = [] sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP sock.bind((UDP_IP, UDP_PORT)) while True: data, addr = sock.recvfrom(4096) mylist.add(data) if len(mylist) == 500: # change mylist to json logic curl XPOST 'Endpoint' --mylist 'application/json' # Basically Curl Xpost the data to endpoint. del mylist[:] 是唯一的。实际上,您甚至可以假设曾经生成的每个UUID都是唯一的。

我向您推荐:How unique is UUID?

答案 1 :(得分:2)

正如@克里斯·康兰(Chris Conlan)所提到的那样,uuid4()几乎可以肯定地具有唯一性。但是,您也可以使用UNIX时间戳命名文件,即time.time()的输出。