2

そのため、textwrap.wrap を組み込むために一連のコードを再フォーマットしましたが、すべての \n がなくなっていることがわかりました。これが例です。

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")

メッセージを出力すると、次のようになります

>>> 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

しかし、それは少しの違いもありませんでした。それで、私はここで何が欠けているのですか、それとも間違っていますか? 改行が本当に必要で、テキストを折り返す必要もあります。

4

1 に答える 1

7

デフォルトでは、このwrap()関数は空白文字(改行を含む)を単一のスペースに置き換えます。キーワード引数を渡すことでこれをオフにできますreplace_whitespace=False

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

于 2012-10-15T19:25:51.117 に答える