将字符串放入64通道后的新行中

2024-07-05 15:04:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在每20个字符后加上\n。。。。在

My_string = "aaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbccccccccccccccccccccddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeffffffffffffffffffff"

我试过这个:a = "\n".join(re.findall("(?s).{,20}", My_string))[0:-1]

当我被打印成:

^{pr2}$

输出:

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

我想要的输出如下:

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

Tags: ofrestringisvaluemyjoin个字符
2条回答

试试这个:

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

看起来可以满足你的要求

您需要创建一个包含所有行的列表,包括预定义的行和换行的行,然后在每行前面添加空格标识(最好是在一个步骤中,以避免重复代码),然后将所有行合并到一个字符串中。在

虽然正则表达式可以做到这一点,但是请看一个漂亮的标准模块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') +
                ['                               -'])

印刷品

^{pr2}$

相关问题 更多 >