2013-03-01 3 views
0

Я довольно новичок в , и я не знаю, как это сделать. Я искал вокруг, и я решил большинство своих проблем, но не этот конкретный.Создание твиттера - нужна помощь в извлечении строки

У меня есть текстовый файл, заполненный случайными стихами. Для целей тестирования это lorem ipsum. То, что я хочу сделать, состоит в том, чтобы извлечь из него 140-символьный раздел, который является случайным. Тем не менее, я только хочу, чтобы он включал в себя полные слова, поэтому отрубайте начало и конец до места.

например.

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.

Использование бота, я мог бы извлечь:

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 как бот, который принимает случайное строки случайных слов из файла и помещает их в твиттер. У меня есть проводка, отсортированная, мне нужен метод извлечения строки.

ответ

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

Я продолжаю получать объект TypeError: 'module' не вызываем "на' poem_init = int (random() * (len (text) -140)) 'line. Я понятия не имею, что это значит, и я не могу исправить это своими ограниченными знаниями. Я знаю, что он делает (генерируя int, который является случайным числом из длины текста -140, поэтому он не переходит), чтобы использовать его в качестве отправной точки, но он не играет счастливым. – Jademalo

+0

Я думаю, что вы не импортируете только случайное, поэтому, если вы используете ** import random **, то вы можете использовать ** poem_init = int (random.random() * (len (текст) -140)) ** –

+0

Неважно, должен был быть 'random.random()'. Благодаря! ** РЕДАКТИРОВАТЬ ** Выполняя это, похоже, что вторая половина кода работает, это не усекает его на пространствах. ** EDIT2 ** и без каких-либо изменений, его работа сейчас ... Что? – Jademalo

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] 

Возможно, это не самый эффективный код, но он выполняет свою работу.

+0

Это выглядит как она могла бы работать! Я попытаюсь выяснить, как начать в случайном положении и вырезать начало тоже. Спасибо! – Jademalo

Смежные вопросы