Вы выбрали довольно волосатую вещь для этого, поскольку в основном требуется, чтобы вы запускали клиент Discord не в al oop, а в единовременном «входе в систему с помощью этого токена и получения идентификатора пользователя». сценарий.
Кроме того, вы не должны использовать файлы Python для хранения данных конфигурации - вместо этого используйте формат данных, например JSON или YAML, или TOML, или INI, или файлы Pickle. Я выбрал JSON здесь, так как он доступен для редактирования человеком, а модуль встроен.
Это кодируется dry (т.е. я не могу проверить это работает) на основе документации API. Я с радостью постараюсь помочь, если это не так.
import asyncio
import discord
import json
async def config(token, filename):
# Set up an event we can await on.
ready_signal = asyncio.Event()
# Initialize the client and hook up the event.
client = discord.Client()
@client.event
async def on_ready():
ready_signal.set()
# Login and connect...
await client.start(token)
# Wait for on_ready to have set the event
await ready_signal.wait()
# Write information to console...
print("Token:", token)
print("Master:", client.user)
# ... and to a JSON configuration file.
with open(filename, "w") as outf:
json.dump(
{"token": token, "master": vars(client.user)}, outf, default=str
)
print("Saved:", filename)
# Close the connection.
await client.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(config(token="asdf", filename="config.json"))