首页 > 解决方案 > str.format() 具有对齐 {:>} 和变量插值

问题描述

我仍在尝试了解 Python 中字符串格式化的新语法。

"{fpath:>80}".format(fpath=path, flongest=longest)

上面的代码插入了路径参数,并正确格式化了字符串,但是用变量替换文本窗口值(80)会给出 ValueError: Invalid format specifier

"{fpath:>flongest}".format(fpath=path, flongest=longest)

如何通过变量分配窗口大小?

"{fpath:>???}".format(fpath=path, flongest=longest)

标签: pythonformattinginterpolationstring-interpolation

解决方案


好的,终于明白了。var 'longest' 可以是数字 ('80') 或 int (80) 的字符串版本。诀窍是仅在右插值变量周围使用大括号。

"{fpath:>{flong}}".format(fpath=path, flong=longest)

推荐阅读