所以我只是重新格式化了一堆代码以合并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
但这没有任何区别。那么,我在这里错过了什么,或者做错了什么?我真的需要我的新行,我也真的需要我的文字被包装。
答案 0 :(得分:7)
默认情况下,wrap()
函数用空格替换空格字符(包括换行符)。您可以通过传递关键字参数replace_whitespace=False
来关闭此功能。
http://docs.python.org/library/textwrap.html#textwrap.TextWrapper.replace_whitespace