如何在Python中通过替换字符串中的字符添加序列号?
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