Python. Прочитать произвольную строку из файла

Предположим, вы решили разработать продвинутого саппорт-бота. В нём будет машин лёнинга до самых краёв, так что человек почти не понадобится. К сожалению, неотложные дела отвлекли ваше внимание, и вы делегировали задачу Френку.

Прямо скажем, это было не лучшее решение. Тупая и ленивая скотина придумала, что достаточно заготовить файл с универсальными ответами на все случаи жизни, и на каждый вопрос отвечать случайной фразой:

# answers.txt
Перезагрузите ваше устройство, пожалуйста
Проверили, проблема на вашей стороне
Спасибо, займёмся этим позже
Наши технические возможности исчерпаны

Простой, надёжный алгоритм. Осталось воплотить в питоне. Здесь Френку поможет linecache.getline():

import linecache
import random

def get_answer():
    line_num = random.randint(1, 4)
    answer = linecache.getline("answers.txt", line_num)
    return answer.strip()
>>> get_answer()
'Проверили, проблема на вашей стороне'

Ничего себе! Это едва ли не короче, чем hello world. К тому же, функция getline() кеширует все строчки файла в списке, так что следующие вызовы get_answer() отработают моментально.

Бот готов, Френк возвращается к своим семечкам.

Заметка из телеграм-канала «Oh My Py»