Задать вопрос
@HightWolt

Почему бот отправляет "0"?

Стек следующий ( python2.7, CentOS7, PyTelegramBotAPI 2.2.3 ).
Стек таков по той причине что необходим именно python 2.7 который корректно работает с telebot только 2.2.3 версии.
Вот код самого бота:
#!/usr/bin/python
# coding=utf-8

import os
import sys
import telebot
from telebot import types
import subprocess
import time


bot = telebot.TeleBot('token')
chat_id = ('id')

new_string = os.system("tail -n 1 /usr/local/bin/test")


print(new_string)

while True:
        bot.send_message(chat_id, new_string)
        break

bot.polling(none_stop=True)

На данном этапе от кода требуется просто отправить мне то, что написано в файле test. Бот по непонятной мне причине просто присылает в телеграм "0". При том что принт самой переменной в которой лежит лог работает, и выводит мне в консоль то что в файле. Заметил особенность, если убрать принт и перенести переменную внутрь цикла, то в консоль выводится только текст, без "0", но в телеграм всё равно приходит "0"....

Выглядит это следующим образом:
64f70be51964e336788498.png
Подскажите пожалуйста, как можно решить эту проблему, и в чём она заключается, заранее спасибо!!!
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Документацию читать надо.
os.system() возвращает числовой код завершения запущенного процесса (0 - завершилась успешно). Стандартный вывод этого процесса молча отправляется в стандартный вывод твоей консоли.
Если тебе нужен перехватить стандартный вывод, используй средства модуля subprocess.
А если тебе нужно мониторить изменения файла, используй пакет watchdog.
Ответ написан
Ваш ответ на вопрос

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

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