3

20文字ごとに\n入れたい…。

My_string = "aaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeffffffffffffffffffff"

私はこれで試しました:a = "\n".join(re.findall("(?s).{,20}", My_string))[0:-1]

私が次のように印刷するときはいつでも:

print '''
              ---------------------------------------------------------------
               Value of a is 
            %s
              ---------------------------------------------------------------
        ''' % a

出力:

     ---------------------------------------------------------------
                          Value of a is
                          aaaaaaaaaaaaaaaaaaab
bbbbbbbbbbbbbbbbbbbc
cccccccccccccccccccd
ddddddddddddddddddde
eeeeeeeeeeeeeeeeeeef
fffffffffffffffffff
                          ---------------------------------------------------------------

次のような出力が必要です。

           ---------------------------------------------------------------
           Value of a is 
           aaaaaaaaaaaaaaaaaaab
           bbbbbbbbbbbbbbbbbbbc
           cccccccccccccccccccd
           ddddddddddddddddddde
           eeeeeeeeeeeeeeeeeeef
           fffffffffffffffffff
           ---------------------------------------------------------------
4

2 に答える 2

2

事前定義された行とラップされた行の両方のすべての行のリストを作成し、各行の前にスペース ID を追加して (コードの重複を避けるため、できれば 1 つのステップで)、すべてを 1 つの文字列に結合します。

正規表現はトリックを行いますが、textwrap行を折り返すことができる素敵な標準モジュールを見てください:

import textwrap

My_string = "aaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeffffffffffffffffffff"


print '\n'.join('              {0}'.format(line) for line in [
                '---------------------------------------------------------------',
                'Value of a is'] + textwrap.fill(My_string, 20).split('\n') +
                ['---------------------------------------------------------------'])

版画

              ---------------------------------------------------------------
              Value of a is
              aaaaaaaaaaaaaaaaaaab
              bbbbbbbbbbbbbbbbbbbc
              cccccccccccccccccccd
              ddddddddddddddddddde
              eeeeeeeeeeeeeeeeeeef
              fffffffffffffffffff
              ---------------------------------------------------------------
于 2013-02-21T07:37:09.803 に答える
0

これを試して:

# -*- encoding: utf-8 -*-
import re

My_string = "aaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeffffffffffffffffffff"
split="\n     "
a = split.join(re.findall("(?s).{,20}", My_string))[0:-1]



print '''     ---------------------------------------------------------------
     Value of a is 
     %s ---------------------------------------------------------------''' % a

要件を満たすことができるようです

于 2013-02-21T08:06:37.163 に答える