在项目开发中经常需要生成一些唯一的序列号问题,那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
'''