如何参数化string.format()格式规范?

时间:2012-01-21 07:07:28

标签: python string parameter-passing string-formatting

我有一个变量line_number_max_digits,我希望在字符串格式规范中将其用作width令牌。我想出了以下代码:

print ('{0:>%d}: {1}' % line_number_max_digits).format(lineno + i, chunk)

但我明白,格式化百分比最终会远离Python。我可以使用string.Template或使用format两次,但这会使我的代码不那么清晰:

print ('{{0:>{0}}}: {{1}}').format(line_number_max_digits).format(lineno + i, chunk)

在这种情况下,哪种方式被视为良好做法?

1 个答案:

答案 0 :(得分:2)

嵌套支持有限。

Example

print('{1:>{0}}: {2}'.format(line_number_max_digits, lineno + i, chunk))