在Python中对字符串进行自动换行打印

4

我有一个很长的字符串:

S='Hello\n i have a very very very very..... very very very very.... long Text!'

打印这段文本会生成一行很长的文字,我希望将其分成每行最多包含10或20个字符的小块。我希望使用\n来分割行,并将\n包含在新字符串中。

我的期望是:

Hello
i have a very 
very very very
..... very very 
very very.... 
long Text!

2
你能否请修改一下你的问题,让它更加清晰明了? - saloua
1
请参阅textwrap - Peter Wood
可能是Pythonic way to create a long multi-line string的重复问题。 - Uyghur Lives Matter
3个回答

5

textwrap.wrap使您能够将字符串按照特定的width进行换行。

默认情况下,它会在换行之前用单个空格替换空格,包括换行符。

如果想保留换行符等内容,请设置replace_whitespace=False

>>> import textwrap
>>> s = 'Hello\n i have a very very very very..... very very very very.... long Text!'
>>> print('\n'.join(textwrap.wrap(s, width=20, replace_whitespace=False)))
Hello
 i have a very
very very very.....
very very very
very.... long Text!
replace_whitespace 的文档如下:

(默认值: True) 如果为真,在制表符扩展但换行符之前,wrap() 方法将用单个空格替换每个空白字符。被替换的空白字符如下:制表符、换行符、垂直制表符、换页符和回车符 ('\t\n\v\f\r')

注意 如果 expand_tabs 为假且 replace_whitespace 为真,则每个制表符将被一个空格替换,这与制表符扩展不同。

注意 如果 replace_whitespace 为假,则换行符可能出现在一行的中间并导致奇怪的输出。因此,应将文本分成段落(使用 str.splitlines() 或类似方法)并分别进行换行。


-3

您可以使用'''您想要的大段字符串'''


-4

如果您喜欢,也可以使用双引号代替单引号。

s = """ this is a very
        long string if I had the
        energy to type more and more ..."""

我说了别的吗?我的回答很相似,为什么还要重复同样的答案? - Jay Parikh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接