可变数量的前导零

时间:2019-09-24 23:00:12

标签: python

在Python中我们可以做到

"file_{:03}.ext".format(i)

允许我们轻松地在任何数字i上加上前导零以适应任何给定宽度。

但是如果仅在运行时知道所需的宽度怎么办?我们还能达到同样的效果吗?

3 个答案:

答案 0 :(得分:2)

当然,字符串格式支持嵌套。

>>> "file_{:0{}}.ext".format(42, 3)
'file_042.ext'
>>> "file_{:0{}}.ext".format(42, 5)
'file_00042.ext'

答案 1 :(得分:2)

由于您未指定python版本,因此我也声明了使用f字符串也很容易做到这一点! (py3.6 +)

>>> value = 42
>>> width = 3
>>> f"file_{value:0{width}}.ext"
'file_042.ext'
>>> width = 5
>>> f"file_{value:0{width}}.ext"
'file_00042.ext'

答案 2 :(得分:-1)

是的!

给出所需的整数宽度d,首先通过字符串串联创建格式字符串,然后调用format。

d = 3
format_string = "file_{:0" +str(d) + "}.ext"
format_string.format(d)

收益

'file_003.ext'