如何用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
'''
相关推荐
宋拾壹1 天前
同时添加多个类目
android·开发语言·javascript
IT知识分享1 天前
从零开发在线简繁转换工具:OpenCC 实战、避坑经验与方案选型
javascript·python
lunzi_08261 天前
【学习笔记】《Python编程 从入门到实践》第8章:函数定义、参数传递与模块导入
笔记·python·学习
凡人叶枫1 天前
Effective C++ 条款04:确定对象被使用前已先被初始化
java·linux·开发语言·c++·嵌入式开发
杨运交1 天前
[030][Web模块]Spring Boot 验证与 OpenAPI 集成实战:从校验规则到文档生成
前端·spring boot·python
培培说证1 天前
2026财务岗位如何快速提升自身能力
python
小小龙学IT1 天前
Go 语言后端开发:从并发模型到生产落地的工程实践
开发语言·后端·golang
努力攻坚操作系统1 天前
编程语言编译运行机制对比:C / Java / Python
java·c语言·python
godspeed_lucip1 天前
LLM和Agent——专题6:Multi Agent 入门(5)
人工智能·python
ytttr8731 天前
Qt 数字键盘实现
开发语言·qt