FileExistsError: [Errno 17] File exists: 'C://tgplay/123_business.py'
Я сделал функцию покупки игрового бизнеса. Код:
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
if message.text == 'Бизнес купить 1':
# проверка денег(баланса)
File = open('c://tgplay/{0}_money.py'.format(message.chat.id), 'r')
isset_money = int(File.read())
File.close
if not (str(message.chat.id)+'_business.py') in 'C://tgplay': # если файл не существует:
if isset_money >= int(5000):
File = open('C://tgplay/{0}_business.py'.format(message.chat.id), 'x+')
File.write('BALANCE = 1')
File.close
bot.send_message(message.chat.id, 'Вы успешно купили бизнес "Продажа самоделок"!')
bot.send_message(123, 'Игрок ' + str(message.chat.id) + ' купил бизнес.')
elif isset_money < int(5000): # если в файле money недостаточно денег:
bot.send_message(message.chat.id, 'Недостаточно средств!')
else: # если файл business уже существует:
bot.send_message(message.chat.id, 'Ошибка. У вас уже есть бизнес!')
Но выдаёт ошибку при тестировании команды, т.е. он не видит else и всё равно пытается создать файл business.
Где ошибка в моём коде?
UPD: да, я знаю что когда пользователь покупает бизнес, у него не вычитаются деньги
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
В данной строке кода:
if not (str(message.chat.id)+'_business.py') in 'C://tgplay'
вы делаете проверку на отсутствие подстроки str(message.chat.id)+'_business.py' в строке 'C://tgplay'. Очевидно это условие будет выполняться всегда для любого значения message.chat.id.
Если вы хотите проверить существует ли соответствующий файл, то это можно сделать так:
import os.path
if os.path.isfile(f"C://tgplay/{message.chat.id}_business.py"):
...
чтобы проверить, что файл не существует:
if not os.path.isfile(f"C://tgplay/{message.chat.id}_business.py"):
...