1

我正在使用 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
4

2 回答 2

6

使用该textwrap模块将线换行到最大宽度。您可以指定'# '缩进来正确地为您的行添加前缀:

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

该模块非常灵活,请阅读文档以查看您想要旋转哪些旋钮以获得完美结果。

于 2013-05-23T21:03:17.547 回答
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']
于 2013-05-23T21:03:29.283 回答