我想为python3脚本中的某些脚本生成的文档生成唯一值或uuid(我不在乎它是数字还是十六进制),但这在脚本的多次执行之间应该是唯一的。 / p>
等该脚本可能每两(2)或三(3)天运行一次。我不想两次获得相同的uuid。
我想到的一种简单而实用的方法是使用纪元时间(因为脚本不会在同一秒运行两次),并且它将运行的计算机是64位(2038 problem),但是似乎很简单,就是万无一失。
另一种实现此目的的方法是使用uuid4()。这在执行程序和不同机器之间是否唯一?
答案 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()
的输出。