@taxi_228_xach_228

Как уменьшить размер выводимого текста в телеграмботе?

import random

import telebot, wikipedia, re
from telebot import types, TeleBot
@bot.message_handler(commands=['wiki'])
def wiki(message):
    wikipedia.set_lang('ru')
    r = wikipedia.page(message.text.split(maxsplit=1)[1]).content

    if len(r) > 4096:
        for x in range(0, len(r), 4096):
            bot.send_message(message.chat.id, '{}'.format(r[x:x + 4096]))
            print(x)
    else:
        bot.send_message(message.chat.id, '{}'.format(r))
        return r

Телеграмм бот написанный на Пайтон, по команде ищет информацию в википедии, выдаёт слишком много информации
Хотелось бы что бы бот выдавал только до 1000 символов или только 1 абзац как это сделать? использовал библиотеку pip pyTelegramBotAPI
eiJAH.jpg
  • Вопрос задан
  • 457 просмотров
Решения вопроса 1
ramzis
@ramzis
FullStackOverflow
Два абзаца
bot.send_message(message.chat.id, ''.join(r.split('\n')[:2]))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
drygdryg
@drygdryg
Python-разработчик
Используйте модуль стандартной библиотеки textwrap. В данном примере текст сокращается до 100 символов с учётом границ слов (слова не будут обрезаны):
import textwrap

text = "В центре города большого, где травинки не растёт, жил поэт, волшебник слова, - вдохновенный рифмоплёт. Рифмовал он что попало, просто выбился из сил, и в деревню на поправку, где коровы щиплют травку, отдыхать отправлен был."
shortened_text = textwrap.shorten(text, width=100, placeholder="…")  # "В центре города большого, где травинки не растёт, жил поэт, волшебник слова, - вдохновенный…"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы