用f字符串格式化字符串宽度

问题描述

我正在尝试创建给定宽度的标头,并希望使用

>>> print(f'{"string":15<}|')
Traceback (most recent call last):
  File "<input>",line 1,in <module>
ValueError: UnkNown format code '<' for object of type 'str'

我们是要像这样拼凑标题吗?还是我缺少有关f字符串的东西?

print('string'+" "*(15-len('string'))+"|")
string         |

解决方法

对于Python Format Specification Mini-Language,对齐说明符(例如<)必须在宽度说明符(例如15)之前。牢记此标准,正确的格式字符串为{:<15}。但是,默认情况下会推断字符串的左对齐,因此您可以简单地将其写为{:15}

>>> print(f'{"string":<15}|')
string         |
>>> print(f'{"string":15}|')
string         |
,

我认为您正在寻找的只是print(f'{"string":15}|')