import os
@client.command(name='осебе')
async def __osebe(ctx, *, osebe = None):
if osebe is None:
await ctx.send('Напиши что-то о себе - %осебе [текст]')
else:
if not os.path.isdir("finitebot/osebe"):
os.makedirs("finitebot/osebe")
useer = ctx.author.id
with open(f'finitebot/osebe/{useer}.json', 'w') as f:
f.write("{}")
print("Новый JSON файл создан...")
with open(f'finitebot/osebe/{useer}.json', "r") as f: #Открываем файл
data = json.load(f) # Получаем файл (Главное чтобы файл содержал {} )
data.update({
"osebe": osebe # Дополняем файл
})
with open(f'finitebot/osebe/{useer}.json', 'w') as file: # Повторно открываем файл, но для записи
json.dump(data, file, indent=4)
import discord
from discord.ext import commands, tasks
bot = commands.Bot(command_prefix='.')
@bot.event
async def on_ready():
print('Bot logged as {}'.format(bot.user))
@tasks.loop(seconds=5)
async def test():
await bot.get_channel(787656357670420500).send('Work')
test.start()
token = 'token' # не сливаю токен, сорян.
bot.run(token)
Ведь проще же ведь сразу занести None или строку, что информация отсутствует при заходе участника на сервер. Зачем создавать лишние if/else (или try/except, как у вас в коде ниже), когда можно всё сделать намного проще?
Конечно да, ваш код намного универсальнее, он сразу сможет прочитать участника, если тот зашел на сервер, пока бот был выключен или уже был на сервере до разработки бота, но я решил предложить более простое решение, которое я использовал, когда тоже ничего не понимал в разработке ботов на Python.