如何格式化均匀间隔的python打印语句

时间:2018-01-05 14:47:59

标签: python-3.x printing

这可能是一个简单的问题,并有一个简单的答案。我有一系列Python3打印语句,我想在打印到屏幕时看起来如下所示。

test_integer_to_month ................... OK
test_month_to_integer ................... OK
test_abbreviated_int_to_month ........... OK
test_days_in_month ...................... OK

即使第一组字符串长度不同,我希望点填充剩余的空格,OK,语句结束于同一列。我使用的代码看起来像这样

import sys
passed = '................... OK'
failed = '................... FAILED'

print('{:30s}{}'.format('test_integer_to_month', passed))
print('{:30s}{}'.format('test_month_to_integer', passed))
print('{:30s}{}'.format('test_abbreviated_int_to_month', passed))
print('{:30s}{}'.format('test_days_in_month', passed))

但是,我得到以下输出

test_integer_to_month         ................... OK
test_month_to_integer         ................... OK
test_abbreviated_int_to_month ................... OK
test_days_in_month            ................... OK

有没有办法可以使用格式语句用'.'填充X个空格,使得该行在描述性字符串后面开始一个空格?

2 个答案:

答案 0 :(得分:1)

如果您将总字符数固定在一行中,则会执行以下操作:

\health

答案 1 :(得分:1)

passed = 'OK'
failed = 'FAILED'
padding = ' ' + '.' * 25

print('{:.40s} {}'.format('test_integer_to_month' + padding, passed))
print('{:.40s} {}'.format('test_month_to_integer' + padding, passed))
print('{:.40s} {}'.format('test_abbreviated_int_to_month' + padding, passed))
print('{:.40s} {}'.format('test_days_in_month' + padding, passed))

填充是单个空格,后跟25个句点。

格式模式中的第1个字段设置为40的精度 将削减多余的填充。

输出:

test_integer_to_month .................. OK
test_month_to_integer .................. OK
test_abbreviated_int_to_month .......... OK
test_days_in_month ..................... OK