Как из .txt файла выносить рандомную строчку и выписывать для юзера в чате вк на python
У меня есть код, как при вводе фразы Бот, скажи слово, из .txt файла бралась 1 рандомная строчка и выводилась юзеру. Желательно чтоб эта строчка не повторялась Библиотека vkapi
import vk_api, random
from vk_api.longpoll import VkLongPoll, VkEventType
vk_session = vk_api.VkApi(token = '800df4012535b065a9759a6b0abf1677aee086137a4ca8600bc7e019234a046959b56e9353ba753151cf2')
session_api = vk_session.get_api()
longpool = VkLongPoll(vk_session)
def send(id, text):
vk_session.method('messages.send', {'user_id': id, 'message': text, 'random_id': 0})
for event in longpool.listen():
if event.type == VkEventType.MESSAGE_NEW:
if event.to_me:
msg = event.text.lower()
id = event.user_id
if msg == 'дарова кабан':
send(id, 'дарова')
else:
send(id, 'я понимаю только "дарова кабан"')
Ответы (1 шт):
Автор решения: Shamus Rezol
→ Ссылка
Приведите файл к удобному для парсинга вида: .. + цифра + слово + разделитель + .. . Может к "28 октября;1999 полнолуния". Получите наборы выражений (цифра + слово) используя str.split(';'). Получится список наборов, нужных вам для вывода. Используйте random.choice чтобы выбрать случайный набор. Чтобы убрать повторы, можно сделать
index=random.randint(0, len(наборы))
set=наборы.pop(index)
Таким образом, случайные наборы не будут повторятся. Но потребуется проверка на перезагрузку наборов так как они могут закончиться.