如何用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
'''
相关推荐
hhzz5 小时前
【YOLO 入门到精通 11】进阶任务实战:分割、姿态、OBB 与深度估计
人工智能·python·yolo·计算机视觉·目标跟踪
十年Java程序媛5 小时前
Redis 分布式锁 + GZIP 压缩缓存踩坑|高并发缓存真实线上复盘
java·开发语言·spring boot·redis·分布式·缓存·面试
低频电磁之道5 小时前
C++ 中有符号与无符号类型混用可能导致的问题
开发语言·c++
for_ever_love__6 小时前
LangChain Token 计数与成本控制:先知道钱花在哪
开发语言·langchain
m0_547486666 小时前
《数据结构 (C语言)》期末试卷及答案(10套)2026版
c语言·开发语言·数据结构
顽疲6 小时前
Java vue 养老系统源码详解:入住核算单 live-check 缴费入账与预交金收据实践
java·vue.js·python·java 养老·springboot 养老·vue养老
Sand(ContextGate)6 小时前
从开发者调试工具到消费级 App:一个 AI 电商导购项目的 C 端改造与 6 个连环踩坑实录
开发语言·人工智能·python·ai·langchain
外收内放6 小时前
数据分析(DataFrame与series)
python·学习·数据分析
白杨尚青6 小时前
C++入门篇(十七):priority_queue 完整模拟实现——仿函数、区间建堆与指针特化(附完整代码仓库)
开发语言·c++·stl·仿函数
逐光者9336 小时前
滤波器的 R 与 C 如何选择:从截止频率到工程实践
c语言·开发语言·r语言