0

私は Raspberry Pi に座っている電報ボットで遊んでいますが、すべて正常に動作しますが、コマンド /uptime で rpi のアップタイムを表示しようとしていますが、成功しませんでした。

elif command == '/uptime':
   bot.sendMessage(chat_id, os.system("uptime"))

または

elif command == '/uptime':
  uptime = os.system("uptime")
  bot.sendMessage(chat_id,'%s' % uptime )

これが私の最後の失敗した試みです。

elif command == '/uptime':
   uptime = os.popen("awk '{print $1}' /proc/uptime").readline()
   bot.sendMessage(chat_id, ('uptime(sec) = '+uptime))

間違いはどこですか?

完全なコードは次のとおりです。

import sys
import os
import telepot
import datetime
import time
from datetime import timedelta

id_a = [111111,2222222,3333333,4444444,5555555]

def handle(msg):
    chat_id = msg['chat']['id']
    command = msg['text']
    sender = msg['from']['id']


    print 'Got command: %s' % command

    if sender in id_a:
     if command == '/ciao':
            bot.sendMessage(chat_id, 'Hei, ciao!')
     elif command == '/apri':
         os.system("sudo python /home/pi/tg/xyz.py")
         bot.sendMessage(chat_id, 'Ti ho aperto!')
    elif command == '/uptime':
       with open('/proc/uptime', 'r') as f:
        usec = float(f.readline().split()[0])
        usec_str = str(timedelta(seconds = usec))
        bot.sendMessage(chat_id, '%s' % usec_str)
    elif command == '/riavvia':
            bot.sendMessage(chat_id, 'Rebooting...')
            os.system("sudo reboot")
    else:
       bot.sendMessage(chat_id, 'Forbidden access!')
       bot.sendMessage(chat_id, sender)

bot = telepot.Bot('myToken')
bot.message_loop(handle)
print 'I am listening ...'

while 1:
    time.sleep(10)
4

2 に答える 2