0

私はにかなり慣れていないので、これを行うための最善の方法がわかりません。私は周りを検索し、ほとんどの問題を解決しましたが、この特定の問題は解決していません。

ランダムな詩でいっぱいのテキストファイルがあります。テストの目的では、loremipsumです。私がやりたいのは、これからランダムな140文字のセクションを抽出することです。ただし、完全な単語のみを含めたいので、最初を切り取って、最後にスペースまで入れます。

例えば。

Lorem ipsum dolorは、amet、consecteturadipiscingelitに座ります。Praesent convallis nibh vitae antedictumgravida。faucibus orci luctus et ultrices posuerecubiliaCuraeのVestibulumanteipsum primis; Vivamus scelerisque accumsan ante、quis porttitor liberotinciduntvel。Lorem ipsum dolorは、amet、consecteturadipiscingelitに座ります。Praesent ullamcorper ornare metusquispulvinar。マグナ・モーリスのヌラム。Aenean necarcuodio。

ボットを使用して、以下を抽出する可能性があります。

faucibus orci luctus et ultrices posuerecubiliaCuraeのtibulumanteipsum primis; Vivamus scelerisque accumsan ante、quis porttitor liber

その後、次のように切り捨てられます。

faucibus orci luctus et ultrices posuerecubiliaCuraeのanteipsumprimis; Vivamus scelerisque accumsan ante、quis porttitor

基本的に、ファイルからランダムな単語のランダムな文字列を取得してTwitterに投稿するボットのようなhorse_ebooksを作成しようとしています。投稿はすべて整理されました。文字列を抽出する方法が必要です。

4

2 に答える 2

1
 from random import random:

text = "" "Lorem ipsum dolor sit amet、consecteturadipiscingelit。Praesentconvallisnibh vitae antedictumgravida。Vestibulumanteipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus scelerisque accumsan ante、 dolor sit amet、consecteturadipiscingelit。Praesentullamcorperornare metusquispulvinar。Nullamatmagnamauris。Aeneannecarcuodio。"" "

poem_init = int(random()*(len(text)-140))
poem = text[poem_init:poem_init+140].split(" ")

if text.find(" "+ poem[0]) < 0:
    del poem[0]

if text.find(poem[-1] + " ") < 0 or text.find(poem[-1]) != len(text):
    del poem[-1]

poem = " ".join(poem)
print poem
于 2013-03-01T01:43:04.590 に答える
0

詩の最初の140文字を抽出できます。

final_poem = poem_string[:140]

次に、物事を簡単にするために、最後のスペースの場所を見つけて、そのスペース以降のすべてを切り取ることができます。

for i, char in enumerate(reversed(final_poem)):
    if char == ' ':
        chop = i + 1 # Remember indices start with 0
final_poem = final_poem[:-chop]

おそらく最も効率的なコードではありませんが、それは仕事を成し遂げます。

于 2013-03-01T01:37:27.380 に答える