>>> string
'This contain slashN:\n'
>>> textwrap.wrap(string, 40)
['This contain slashN:']
>>> textwrap.wrap(string, 40, replace_whitespace=False)
['This contain slashN:']
>>>
我期待着
['This contain slashN:\n']
为什么textwrap.wrap
仍然替换空格(\n
这里)?
虽然它documentation说:
replace_whitespace
(默认值:True)如果为true,则在制表符扩展之后但在换行之前,wrap()方法将用单个空格替换每个空格字符。替换的空格字符如下所示:制表符,换行符,垂直制表符,换页符和回车符('\ t \ n \ v \ f \ r')。
请注意
如果expand_tabs为false且replace_whitespace为true,则每个制表符将替换为单个空格,这与制表符扩展不同。
请注意
如果replace_whitespace为false,则换行符可能出现在行的中间并导致奇怪的输出。出于这个原因,文本应该分成段落(使用str.splitlines()或类似的),它们是分开包装的。
编辑:添加我的预期
答案 0 :(得分:1)
有一个单独的参数drop_whitespace
用于剥离前导和尾随空格。它默认为true。传递False将其关闭:
>>> textwrap.wrap('This contain slashN:\n', 40, replace_whitespace=False, drop_whitespace=False)
['This contain slashN:\n']