1

Python を使用して、プログラミングに使用するテスト ファイルを生成しています。このファイルには、自動生成されたコメントがいくつかあります。問題は、これらのコメントの一部が非常に長くなる可能性があり、ファイルを読み取るソフトウェアが行が長すぎるとエラーを生成することです。

私が探しているのは、'\n#' で文字列を分割する方法です。これらの改行の位置は、任意の 1 行の幅を特定の幅未満に制限する必要があります。以下は、私がやりたいことの例です。「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このモジュールを使用して、行を最大幅に折り返します。as indent を指定'# 'して、行の前に適切に接頭辞を付けることができます。

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

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 に答える