Как остановить выполнение цикла в другом файле с помощью telegram api?

#python #telegram #telegram-bot #py-telegram-bot-api

#питон #телеграмма #telegram-бот #py-telegram-бот-api

Вопрос:

Как остановить функцию, расположенную в другом файле, с помощью кнопки в телеграмме?

Основной файл:

 import time import telebot from telebot import types bot = telebot.TeleBot(token=TOKEN)   @bot.message_handler(commands=['start'], content_types='text') def start(message):  keyboard = types.InlineKeyboardMarkup()  keyboard.add(types.InlineKeyboardButton(text='stop', callback_data='stopfunc'))  bot.send_message(message.chat.id, 'Меню', reply_markup=keyboard)   @bot.callback_query_handler(func=lambda call: True) def callback_worker(call):  """Функция обработки кнопок"""  if call.data == 'stopfunc':  pass # What to add here ??  

Второй файл:

 def test_func():  while True:  print("Hello")  time.sleep(2)  

Ответ №1:

Вы можете получить pid второго процесса, используя

 from subprocess import check_output def get_pid(name):  return check_output(["pidof",name])  

замените имя на имя второго файла

После получения PID вы можете убить его с помощью

 os.kill(pid, 9)