Python testwrap.wrap替换whitespace dispite disable

时间:2016-11-08 05:36:36

标签: python textwrapping

>>> 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()或类似的),它们是分开包装的。

编辑:添加我的预期

1 个答案:

答案 0 :(得分:1)

有一个单独的参数drop_whitespace用于剥离前导和尾随空格。它默认为true。传递False将其关闭:

>>> textwrap.wrap('This contain slashN:\n', 40, replace_whitespace=False, drop_whitespace=False)
['This contain slashN:\n']