我决定重构Python文件,即将它分成几个文件,以使其更容易使用。
然而,出了点问题,之后from date import back_anket机器人什么也没做(程序不会停止,只是闲置运行)。
以下是这3个文件的代码部分:
这是 api_token.py 文件
import telebot
import sqlite3
API_TOKEN = 'API_TOKEN'
bot = telebot.TeleBot(API_TOKEN)
日期.py 文件
from api_token import bot, sqlite3
def create_propper_list():
connect = sqlite3.connect('bd.sql')
curs = connect.cursor()
# Fetch user info from the database
curs.execute("SELECT chat_id FROM users")
column_data = [row for row in curs.fetchall()]
curs.close()
connect.close()
return column_data
@bot.callback_query_handler(func=lambda callback: True)
def back_anket(ankets):
user_list = create_propper_list()
print(user_list)
bot.polling(none_stop=True)
这是主要的 bot.py 文件
import io
import json
from telebot import types
import sqlite3
from api_token import bot
from date import back_anket
start = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton('Старт')
name = None
age = None
...
不幸的是,在主文件中,正如我已经说过的,导入后一切都闲置。我希望你能帮忙。
问题是bot.polling(none_stop=True)。
polling()- 这是一个循环,它会阻止代码执行,因为它等待事件(来自机器人的消息),这反过来会导致在另一个文件中导入模块时冻结。我建议在所有导入和调用之后在最后调用bot.polling(none_stop=True) 。
date.py从-> bot.polling(none_stop=True)中删除并将其移动到 file ->bot.py。