如何在Python中通过替换字符串中的字符添加序列号?

0 投票
4 回答
1111 浏览
提问于 2025-04-17 03:38

oldName = "old_###"

我现在想把所有的"#"替换成序号,比如在这个例子中,oldName应该变成"old_001"

有没有什么简单的Python方法可以做到这一点?

4 个回答

1

试试用字符串格式化的方法:

number = 123
serial_number = "old_%03d" % number
3

你难道不可以这样做吗:

oldName.replace('###', '001')

当然,我在这里假设你总是有3个'#'符号。

我觉得简单的方法是最好的,如果这样能解决问题,你就不需要使用re模块了。

1

如果###不是必须的:

print 'old_{:03d}'.format(1)

如果你需要###,这里有一种计算格式字符串的方法:

import re
name = "old_#####"
fmt = re.sub(r'#+',lambda m: r'{{:0{}d}}'.format(len(m.group(0))),name)
print name
print fmt
for i in range(5):
    print fmt.format(i)

输出

old_#####
old_{:05d}
old_00000
old_00001
old_00002
old_00003
old_00004

撰写回答