我对python很新,我不知道这样做的最好方法。我四处寻找,我已经解决了我的大部分问题,但没有解决这个问题。
我有一个充满随机诗的文本文件。为了测试,它是lorem ipsum。我想要做的是从中提取一个随机的140个字符的部分。但是,我只希望它包括完整的单词,所以切断开始并结束空间。
例如
Lorem ipsum dolor坐下来,精神上的精神。 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坐下来,精致的adipistur elit。 Praesent ullamcorper ornare metus quis pulvinar。 Nullam在magna mauris。 Aenean nec arcu odio。
使用机器人,我可能会提取:
tibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; 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上。我已经整理了所有的帖子,我只需要提取字符串的方法。
答案 0 :(得分: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
答案 1 :(得分: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]
可能不是最有效的代码,但它可以完成工作。