Основы подключения Python к сети и проверки ввода пользователя - PullRequest
0 голосов
/ 15 октября 2018

Я относительно новичок, и я просто в растерянности относительно того, с чего начать.Я не ожидаю подробных пошаговых ответов (хотя, конечно, они более чем приветствуются), но любые толчки в правильном направлении будут высоко оценены.

Я хочу использовать питон Гутенбергабиблиотека для выбора текста на основе ввода пользователя.

Прямо сейчас у меня есть код:

from gutenberg.acquire import load_etext
from gutenberg.cleanup import strip_headers

text = strip_headers(load_etext(11)).strip()

, где число представляет текст (в данном случае 11 = Алиса в стране чудес).

Тогда у меня есть куча кода о том, что делать с текстом, но я не думаю, что это уместно здесь.(Если он сообщен мне, и я могу добавить его).

По сути, вместо того, чтобы просто выбрать текст, я хочу позволить пользователю сделать это.Я хочу попросить пользователя выбрать автора, и если у Project Gutenberg (PG) есть работы этого автора, попросите их выбрать из списка названий книг (если у PG ничего нет у этого автора, верните какой-нибудь ответ)в духе «извините, ничего не пишите по $ author_name, выберите кого-то еще». А затем, когда пользователь определился с книгой, введите в код номер, соответствующий этой книге.

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

В идеале, я 'Я мог бы справиться и с такими вещами, как орфографические ошибки, но это может оказаться не в порядке.

Я действительно ценю любую помощь, которую есть у кого-то. Спасибо!

1 Ответ

0 голосов
/ 15 октября 2018

Модуль gutenberg включает средства для поиска текста по метаданным , например автора.Пример из документации:

from gutenberg.query import get_etexts
from gutenberg.query import get_metadata

print(get_metadata('title', 2701))  # prints frozenset([u'Moby Dick; Or, The Whale'])
print(get_metadata('author', 2701)) # prints frozenset([u'Melville, Hermann'])

print(get_etexts('title', 'Moby Dick; Or, The Whale'))  # prints frozenset([2701, ...])
print(get_etexts('author', 'Melville, Hermann'))        # prints frozenset([2701, ...])

Звучит так, как будто вы уже знаете, как прочитать значение от пользователя в переменную, и замена литерального автора в приведенном выше примере будет такой же простой, как что-то сделатьнапример:

author_name = my_get_input_from_user_function()
texts = get_etexts('author', author_name)

Обратите внимание на следующее примечание из того же раздела:

Перед использованием одной из функций gutenberg.query необходимо заполнить локальный кэш метаданных.Этот одноразовый процесс займет довольно много времени (18 часов на моем компьютере), но после этого любые последующие вызовы get_etexts или get_metadata будут очень быстрыми.Если вам не удастся заполнить кэш, вызовы вызовут исключение.

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

...