Я хотел сделать команду для своего бота, которая поможет мне проверить температуру Raspberry Pi. Я пытался сделать команду, и ctx.send(os.system('vcgencmd measure_temp'))
но он отправляет «0». Я пробовал просто ctx.send(vcgencmd measure_temp)
, но все равно не работает, может кто-нибудь помочь мне с этим?
os.system
возвращает код возврата команды. Вместо этого используйте subprocess.run
, чтобы получить стандартный вывод (я предполагаю, что там выводится vsgencmd):
await ctx.send(subprocess.run(["vcgencmd", "measure_temp"], stdout=subprocess.PIPE).stdout.decode("utf-8").strip())
.decode("utf-8")
преобразует stdout из bytes в str, а strip удаляет завершающую новую строку.
@MaciejkaG должен быть исправлен.
Спасибо! Оно работает! Но вместо
temp=*something*
отправляетb"temp=43.0'C\n"
подскажите как удалить этиb"
и\n"
?