如何用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
'''
相关推荐
去码头整点薯条ing20 小时前
某当网登录滑块【协议+OCR】
爬虫·python·ocr
脱胎换骨-军哥20 小时前
C++/Rust无缝互操作:混合系统新常态
开发语言·c++·rust
songroom20 小时前
Kimi K3:Rust封装XTP接口详细教程实践
开发语言·后端·rust
kebeiovo20 小时前
游戏服务端开发:Actor模型详解(Go语言)
开发语言·后端·golang
赶紧写完去睡觉20 小时前
Anaconda 创建虚拟环境与使用
python·pycharm·conda
迷途呀20 小时前
Python:函数中的参数类型
开发语言·笔记·python·langchain·nlp
Herbert_hwt21 小时前
建立Java程序开发
java·开发语言
你驴我21 小时前
WhatsApp 多账号下消息已读回执的实时聚合与推送实践
后端·python
愚公移码21 小时前
蓝凌EKP18产品:流程虚拟机(PVM)
java·开发语言·前端
十月的皮皮21 小时前
stm20260720-从新手 C 到量产 STM32 工程:程序设计推导指南
c语言·开发语言·stm32·stm32cubemx·hal库