我正在使用python生成用于编程的测试文件。在这个文件中,我有几个自动生成的注释。问题是,其中一些注释可能很长,如果一行太长,读取文件的软件会产生错误。
我正在寻找的是用'\ n#'打破字符串的方法。这些换行符的位置应限制任何一行的宽度小于某个宽度。以下是我想要做的一个例子。我需要从“long_line”生成“broken_line”的代码。
long_line = "# alpha || bravo || charlie || delta || echo are the first 5 elements of NATO"
broken_line = "# alpha || bravo || charlie ||\n# delta || echo are the first \n# 5 elements of NATO"
>>>print long_line
# alpha || bravo || charlie || delta || echo are the first 5 elements of NATO
>>>print broken_line
# alpha || bravo || charlie ||
# delta || echo are the first
# 5 elements of NATO
答案 0 :(得分:6)
使用textwrap
module将线条换行到最大宽度。您可以将'# '
指定为缩进,以正确地为您的行添加前缀:
>>> import textwrap
>>> long_line = "# alpha || bravo || charlie || delta || echo are the first 5 elements of NATO"
>>> textwrap.fill(long_line, 30, subsequent_indent='# ')
'# alpha || bravo || charlie ||\n# delta || echo are the first\n# 5 elements of NATO'
>>> print textwrap.fill(long_line, 30, subsequent_indent='# ')
# alpha || bravo || charlie ||
# delta || echo are the first
# 5 elements of NATO
该模块非常灵活,请阅读文档以查看您想要旋转的旋钮以获得完美结果。
答案 1 :(得分:1)
一种方法是使用textwrap-module
In [6]: import textwrap
In [7]: long_line = "# alpha || bravo || charlie || delta || echo are the first 5 elements of NATO"
In [8]: textwrap.wrap(long_line, width=50)
Out[8]:
['# alpha || bravo || charlie || delta || echo are',
'the first 5 elements of NATO']