Python中Print 怎么对齐对少位宽度?

比如我要Print一系列这样的字符串。
Update Blog...... [OK]
Now Delete files .... ............ [OK]
XXXXXXXXXXXXXXXXX.......[OK]
意思也就是我不管前面的串有多长, 后面的[OK] 总能保持在同样的宽度输出。不会像下面这样:'[OK]'因为前面的串长度不一致而错位。
Update Blog...... [OK]
Now Delete files .............. [OK]
XXXXXXXXXXXXXXXXX.......[OK]

第1个回答  2014-03-01

这样

print '%-20s[OK]' % s #后面的s为要输出的内容 20 是文字长度
# 如果文字要右对齐,可以将%-20s改为%20s

截图

第2个回答  推荐于2016-07-13
>>> items = [
...     ('data collector', 'OK'),
...     ('prepair', 'Warning'),
...     ('bind datas', 'Error'),
...     ('output report', 'Fail'),
...     ]

>>> fmt = '%40s %-9s'
>>> print '\n'.join([fmt % x for x in items])
                          data collector OK       
                                 prepair Warning  
                              bind datas Error    
                           output report Fail     

>>> fmt = '%-40s %9s'
>>> print '\n'.join([fmt % x for x in items])
data collector                                  OK
prepair                                    Warning
bind datas                                   Error
output report                                 Fail
>>> print '\n'.join([fmt % (x, '[%s]'%y) for x, y in items])
data collector                                [OK]
prepair                                  [Warning]
bind datas                                 [Error]
output report                               [Fail]
>>>

本回答被提问者采纳
相似回答