如何用python生成一定规则的序列号?

在项目开发中经常需要生成一些唯一的序列号问题,那python生成一定规则的序列号如何写呢?可以多种方式,下面给出一些常用的序列号规则的例子:

1,生成含有前缀并至少带指定长度格式的序列号

格式:prefix_d0{output_len}1

python 复制代码
def create_sn(prefix, output_len=4):
    '''生成含有前缀并至少带指定长度格式的序列号,
    格式:prefix_d0{output_len}1'''
    if output_len < 1:
        output_len = 1
    sn = 0
    while True:
        sn += 1
        if len(str(sn)) > output_len:
            # 当大于指定位数时直接加上位数
            yield f'{prefix}' + str(sn)
        else:
            yield f'{prefix}' + '{:0{}}'.format(sn, output_len)

2,生成含有前缀带日期和尾长度格式的序列号,

格式:prefix_YYYYMMDD_HHMMSS_d0{output_len}1

python 复制代码
def create_sn2(prefix, output_len=4):
    '''生成含有前缀带日期和尾长度格式的序列号,
    格式:prefix_YYYYMMDD_HHMMSS_d0{output_len}1'''
    if output_len < 1:
        output_len = 1
    if not prefix:
        prefix = ''
    sn = 0
    while True:
        sn += 1
        if len(str(sn)) > output_len:
            sn = 0
        dt = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
        tmp = f'{prefix}{dt}'
        tmp = tmp + '{:0{}}'.format(sn, output_len)
        yield tmp

3,使用例子

python 复制代码
def main():
    '''主函数'''
    # excel_create(r'F:\appData', '', 'TB01', 'TB02', 'TB03')
    # excel_sheet_operate(r'F:\appData\20251207_211304.xlsx')
    sn = create_sn('TB', 4)
    sn2 = create_sn2('TB', 4)
    print(next(sn),'----',next(sn2))
    print(next(sn),'----',next(sn2))
    print(next(sn),'----',next(sn2))


if __name__ == '__main__':
    print('-' * 60)
    main()


'''
上面例子返回结果参考如下:
------------------------------------------------------------
TB0001 ---- TB20251208_2333570001
TB0002 ---- TB20251208_2333570002
TB0003 ---- TB20251208_2333570003
'''
相关推荐
2601_963869958 小时前
【计算机毕业设计】基于Java的潮牌购物网站系统的设计与实现
java·开发语言·课程设计
2301_806709388 小时前
国内知名的生活水箱制造厂有哪些
python·生活
名字还没想好☜8 小时前
Go 的 io.Reader/Writer 组合实战:io.Copy、TeeReader、MultiWriter 优雅处理数据流
开发语言·后端·golang·go·iphone
学掌门8 小时前
超级菜鸟怎么学习数据分析?
python·学习·数据分析
郝学胜-神的一滴9 小时前
Qt 高级编程 042:进度条从入门到自定义美化
开发语言·c++·qt·软件开发·用户界面
鸿芯微控科技9 小时前
压电纳米定位分辨率怎么测?噪声、带宽、最小可检测位移与Python分析
开发语言·python·噪声分析·压电执行器·纳米定位·位移测量
用户7783366132119 小时前
从 0 搭一个关键词排名监控:核心思路 + 可运行代码
后端·python·api
Fanta丶9 小时前
14.Python闭包、装饰器
python
码云骑士9 小时前
99-混合搜索Hybrid-Search-BM25-稀疏稠密向量-融合排序
python