如何使用 str.format() 规范中的变量来确定宽度和精度?

(我在 Python 3 中。)

这工作正常:

print('    {:<127.127}  {:<}'.format(value[1], value[0]))

但这给出了一个错误:
SHOWLEN = 127
print('    {:<SHOWLEN.SHOWLEN}  {:<}'.format(value[1], value[0]))

具体来说,我得到:
Traceback (most recent call last):

  File "C:\Users\Dave\Desktop\index\treeIndex.py", line 101, in <module>
    treeIndex(sys.argv[1])

  File "C:\Users\Dave\Desktop\index\treeIndex.py", line 96, in treeIndex
    print('    {:<SHOWLEN.SHOWLEN}  {:<}'.format(value[1], value[0]))

ValueError: Invalid format specifier

如何为精度和宽度使用变量?

最佳答案

SHOWLEN 括在括号中

"{varname:<{SHOWLEN}.{SHOWLEN}f}".format(varname=34.54, SHOWLEN=8)

这从 Format String Syntax 文档中的以下引用中可以明显看出:

10-08 16:12