0

我对很陌生,我不知道最好的方法来做这件事。我四处寻找,我已经解决了我的大部分问题,但不是这个特定的问题。

我有一个充满随机诗歌的文本文件。出于测试目的,它是 lorem ipsum。我想做的是从中随机抽取一个 140 个字符的部分。但是,我只希望它包含完整的单词,所以去掉开头和结尾的空格。

例如。

Lorem ipsum dolor sit amet, consectetur adipiscing elit。Praesent convallis nibh vitae ante dictum gravida。Faucibus orci luctus et ultrices posuere cubilia Curae 的前庭前庭;Vivamus scelerisque accumsan ante,quis porttitor libero tincidunt vel。Lorem ipsum dolor sit amet, consectetur adipiscing elit。Praesent ullamcorper ornare metus quis pulvinar。Nullam 在 magna mauris。Aenean nec arcu odio。

使用机器人,我可能会提取:

faucibus orci luctus et ultrices posuere cubilia Curae 中的 tibulum ante ipsum primis;Vivamus scelerisque accumsan ante, quis porttitor liber

然后将其截断为:

ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;Vivamus scelerisque accumsan ante, quis porttitor

本质上,我正在尝试创建一个类似机器人的 horse_ebooks,它从文件中获取随机单词的随机字符串并将它们发布到 twitter 上。我已经把帖子都整理好了,我只需要提取字符串的方法。

4

2 回答 2

1
 from random import random:

text = """ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent convallis nibh vitae ante dictum gravida. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus scelerisque accumsan ante, quis porttitor libero tincidunt vel. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ullamcorper ornare metus quis pulvinar. Nullam at magna mauris. Aenean nec arcu odio."""

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