每次使用Python调用时都生成总是唯一的ID

2024-09-28 05:21:38 发布

您现在位置:Python中文网/ 问答频道 /正文

创建python脚本的最佳方法是什么?通过调用该脚本,它将始终生成一个新的唯一ID(Autoincremental)

你运行脚本,它会告诉你1,然后关闭脚本,再次打开,会告诉你2。在

它的目的是创建一个将被跨使用的脚本,这个ID将用于跟踪最新的更改等等。在

另外,我不是说要做一个函数来完成它。在


Tags: 方法函数目的脚本idautoincremental
3条回答

我假设你有一个脚本,每次执行它都会产生一些结果。然后需要一个值,该值(1)区分一个结果和另一个结果,(2)显示哪个结果最后出现。对吗?如果是这样,我们有很多选择。在最简单的情况下(脚本总是在同一台机器上运行),我建议两个选项

保存一个文件

在这种情况下,您将拥有一个文件并从中读取编号:

try:
    with open('count.txt') as count_file:
        content = count_file.read()
        count = int(content)
except Exception:
    count = 0

在执行脚本所做的任何操作之后,您将向文件中写入已读取但递增的值:

^{pr2}$

保存时间戳

然而,一个更简单的选择不是增加值而是获取时间戳。您可以使用^{},它返回自Unix epoch起的秒数:

>>> import time
>>> time.time()
1547479233.9383247

你总会知道哪个结果比其他结果来得晚。然而,就我个人而言,我宁愿format the current time,它更容易阅读和推理:

>>> from datetime import datetime
>>> datetime.now().strftime('%Y%m%d%H%M%S')
'20190114132407'

这些都是基本的想法,您可能需要注意角落情况和可能的失败(尤其是基于文件的解决方案)。也就是说,我想这些都是可行的第一步。在

技术说明

你想让一个程序在两次或两次以上的执行之间记住一条信息,我们有一个技术术语:信息应该是持久的。因为您要求一个自动递增特性,所以您需要一个持久计数。但是,我怀疑,如果使用时间戳选项,则不需要它。在这里做什么由你决定。在

import uuid

uniqueid = uuid.uuid1()

既然你没有提供任何代码,我也不会提供任何代码。在

解决方案1:唯一ID

1)时间:创建函数,为您提供时间戳

2)ID:创建生成带有随机数字和字母的长字符串的函数

  • 这当然是“有风险”的,因为有可能生成已经存在的ID,但是从统计的角度来看,这就是所谓的“即使可能也不可能”

保存在文件或其他地方

解决方案2:偏移-增量

1)文件中有0。在

2)打开文件,读取行,转换为整数,增量为+1,写入文件。在

注意:

你的标题错了。前一刻你在谈论唯一的ID,下一刻你在谈论偏移量。惟一的ID和运行python脚本的计数是非常矛盾的想法

相关问题 更多 >

    热门问题