使用Python对齐的新行打印字符串

时间:2017-01-16 09:58:53

标签: python string printing format newline

是否有一种简单的方法可以打印包含新行\n的字符串,在一定数量的字符后左对齐?

基本上,我所拥有的就像是

A = '[A]: '
B = 'this is\na string\nwith a new line'

print('{:<10} {}'format(A, B))

问题是,对于新行,下一行不会从第10列开始:

[A]:       this is
a string
with a new line

我想要像

这样的东西
[A]:       this is
           a string
           with a new line

我可能会分开B,但我想知道是否有这种方法可以做到这一点

1 个答案:

答案 0 :(得分:3)

实现这一目标的一种简单方法是用新行和11替换新行(11因为{:<10}中的10,但是在格式中添加了一个空格)空格:

B2 = B.replace('\n','\n           ')
print('{:<10} {}'.format(A, B2))

或许更优雅:

B2 = B.replace('\n','\n'+11*' ')
print('{:<10} {}'.format(A, B2))

python3

中运行此功能
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> A = '[A]: '
>>> B = 'this is\na string\nwith a new line'
>>> B2 = B.replace('\n','\n           ')
>>> print('{:<10} {}'.format(A, B2))
[A]:       this is
           a string
           with a new line