Python textwrap.wrap导致\ n的问题

时间:2012-10-15 19:19:48

标签: python newline textwrapping

所以我只是重新格式化了一堆代码以合并textwrap.wrap,但却发现我的所有内容都已消失。这是一个例子。

from textwrap import wrap

def wrapAndPrint (msg, width=25):
  """ wrap msg to width, then print """

  message = wrap(msg, width)
  for line in message:
    print line

msg = ("Ok, this is a test. Let's write to a \nnewline\nand then "
       "continue on with this message")

如果我打印msg,我会得到以下

>>> print msg
Ok, this is a test. Let's write to a 
newline
and then continue on with this message
>>> 

但是,如果我把它发送到包装它看起来像这样:

>>> wrapAndPrint(msg)
Ok, this is a test. Let's
write to a  newline and
then continue on with
this message
>>>

我认为它可能与从列表中打印字符串有关,所以我尝试调用特定的索引,所以我尝试使我的for循环看起来更像这样:

x = 0
for line in message:
  print line[x]
  x += 1

但这没有任何区别。那么,我在这里错过了什么,或者做错了什么?我真的需要我的新行,我也真的需要我的文字被包装。

1 个答案:

答案 0 :(得分:7)

默认情况下,wrap()函数用空格替换空格字符(包括换行符)。您可以通过传递关键字参数replace_whitespace=False来关闭此功能。

http://docs.python.org/library/textwrap.html#textwrap.TextWrapper.replace_whitespace