2

アホイ スタックオーバーロー アーズ!

かなり些細な質問がありますが、ここの他の質問やオンライン チュートリアルで見つけることができなかったものです。余分なモジュールはありますか?

ここでの目的は、新聞記事のようなプレーン テキストのブロックを取得することです。前にフィルタリングして、必要な単語だけを抽出しましたが、各行が次の形式で出力したいと考えています。それに沿って70文字しかなく、通常は改行に該当する場合、単語は改行されません。

stdout.write(article.ljust(70)) のように .ljust(70) を使用しても、何もしないようです。

単語が壊れていないことについての他のことは、次のようになります。

Latest news tragic m

urder innocent victi

ms family quiet neig

hbourhood

Looking more like this:

Latest news tragic

murder innocent

victims family 

quiet neighbourhood

よろしくお願いします!

4

3 に答える 3

8

Python textwrapモジュール(標準モジュール)をチェックアウトする

>>> import textwrap
>>> t="""Latest news tragic murder innocent victims family quiet neighbourhood"""
>>> print "\n".join(textwrap.wrap(t, width=20))
Latest news tragic
murder innocent
victims family quiet
neighbourhood
>>> 
于 2012-05-08T08:29:20.793 に答える
0

textwrapモジュールを使用します。

http://docs.python.org/library/textwrap.html

于 2012-05-08T08:30:58.847 に答える
0

これは改善できると確信しています。ライブラリなし:

def wrap_text(text, wrap_column=80):
    sentence = ''
    for word in text.split(' '):
        if len(sentence + word) <= 70:
            sentence += ' ' + word
        else:
            print sentence
            sentence = word
    print sentence

編集:正規表現を使用して単語を選択する場合は、コメントから次を使用します。

import re

def wrap_text(text, wrap_column=80):
    sentence = ''
    for word in re.findall(r'\w+', text):
        if len(sentence + word) <= 70:
            sentence += ' ' + word
        else:
            print sentence
            sentence = word
    print sentence
于 2012-05-08T09:34:18.440 に答える