Не могу записать юзера в текстовый документ
У меня есть такой фрагмент кода:
@bot.message_handler(commands=["start","help","info","hi",'hello','привет'])
def welcome(message): #приветствие
global users_db
users_db = open("users.txt", "r")
global JoinedUser
JoinedUser = set()
for line in users_db:
JoinedUser.add(line.strip())
if not str(message.chat.id) in users_db:
users_db = open("users.txt", "a")
users_db.write(str(message.chat.id) + "\n")
users_db.add(message.chat.id)
users_db.close()
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
mrk = types.KeyboardButton("Игры?")
mrk1 = types.KeyboardButton("Офисные продукты?")
about_me = types.KeyboardButton("О проекте")
markup.add(mrk,mrk1,about_me)
bot.send_message(message.chat.id,"Добро пожаловать, {0.first_name}!\nЯ - <b>{1.first_name}</b>, бот для покупки софта, игр и различных подписок на разные сервисы".format(message.from_user, bot.get_me()),parse_mode='html',reply_markup=markup)
@bot.message_handler(commands=['рассылка'])
def news(message):
for user in users.db:
bot.send_message(JoinedUser, message.text[message.text.find(' '):])
Я пробовал разные способы, но вот все равно на строке for user in users.db python не видит переменную users.db
Что можно сдлеать?
Ответы (2 шт):
Автор решения: Кто-то
→ Ссылка
Я так думаю вам не стоит использовать глобальные переменные. Лучше вынесете переменные users_db и JoinedUser к импортам. Приведу пример.
import time #импорт для примера
users_db = None
JoinedUser = None
И помните глобальные переменные это зло
Автор решения: Magmuss1
→ Ссылка
Банально запутался в переменных. Верный код:
users_db = open("users.txt", "r")
JoinedUser = set()
for line in users_db:
JoinedUser.add(line.strip())
users_db.close()
@bot.message_handler(commands=["start"])
def welcome(message):
if not str(message.chat.id) in JoinedUser:
users_db = open("users.txt", "a")
users_db.write(str(message.chat.id) + "\n")
users_db.close()
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
mrk = types.KeyboardButton("Игры?")
mrk1 = types.KeyboardButton("Офисные продукты?")
about_me = types.KeyboardButton("О проекте")
markup.add(mrk,mrk1,about_me)
bot.send_message(message.chat.id,"Добро пожаловать, {0.first_name}!\nЯ - <b>{1.first_name}</b>, бот для покупки софта, игр и различных подписок на разные сервисы".format(message.from_user, bot.get_me()),parse_mode='html',reply_markup=markup)
@bot.message_handler(commands=['new'])
def news(message):
for user in JoinedUser:
bot.send_message(user, message.text[message.text.find(' '):])