Как сынтерпретировать сообщение от пользователя python
Пишу телеграмм-бота на Python через telebot. Этот бот должен будет интерпретировать код, который пришлет пользователь. Вот так выглядит функция, интерпретирующая код:
def interpreter(message):
file = open('programmes.py', 'w', encoding='UTF-8')
file.write(message.text)
file.close()
conclusion = os.system('programmes.py')
bot.send_message(message.chat.id, conclusion)
При запуске в консоль выводится вывод кода ( например: Код: print(5+5) | Вывод: 10 ). А бот высылает пользователю цифру 0. Независимо оттого, какой код. Будь то: a = 5 или print(4-3).

Ответы (1 шт):
Автор решения: nomnoms12
Но я Вам крайне не советую исполнять произвольный код от пользователей. Это может привести к компрометации всей системы.
→ Ссылка
Функция os.system возвращает код завершения программы. Код 0 означает, что программа завершилась без ошибок.
Для выполнения произвольного кода и получения результатов, есть функции exec, eval и модуль ast.
Пример:
code = '9*8'
result = eval(code)
print(result) # 72
Но я Вам крайне не советую исполнять произвольный код от пользователей. Это может привести к компрометации всей системы.
