如何将包含多个字符的python字符串格式化为pading部分

如何将包含多个字符的python字符串格式化为pading部分,python,string,templates,format,Python,String,Templates,Format,这对填充单个字符都很好: >>> '{:{pad}>{num}}'.format('12345',num='10', pad='a') aaaaa12345 但是,如何使用“abc”作为填充字符打印出abcab12345 这很糟糕: >>> '{:{pad}>{num}}'.format('12345',num='10', pad='abc') ---------------------------------------------------

这对填充单个字符都很好:

>>> '{:{pad}>{num}}'.format('12345',num='10', pad='a')
aaaaa12345
但是,如何使用“abc”作为填充字符打印出
abcab12345

这很糟糕:

>>> '{:{pad}>{num}}'.format('12345',num='10', pad='abc')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-38-85d5680ad88a> in <module>()
----> 1 '{:{pad}>{num}}'.format('hello',num='10', pad='abc')

ValueError: Invalid format specifier
>>'{:{pad}>{num}}'。格式('12345',num='10',pad='abc')
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
---->1'{:{pad}>{num}}'。格式('hello',num='10',pad='abc')
ValueError:格式说明符无效

我喜欢python3 BTW中的迷你格式语言;-)

您应该连接
格式
操作(提示:您需要为每个格式嵌套级别使用双精度
{}
):

这让我们得到结果
'----12345'


这里有一个

我真的不明白想要的输出是什么,你介意把问题扩大一点吗?@Netwave我认为想要的输出是
abcab12345
。这是一个多字符的pad
baseFmtStr = "'{{{{:{{pad}}>{num}}}}}'"
resultStr = baseFmtStr.format(num=10).format(pad='-').format(12345)