2 votes

Discord.py attacher une image depuis le bot

Je crée un robot qui envoie une photo aléatoire de Will Smith à partir d'un dossier dans mon dossier Téléchargements qui s'appelle willy . Je n'ai pas mis en place la partie aléatoire mais j'essaie de faire en sorte que le robot envoie une image dans le champ willy dossier appelé 0aPw0J4.png . Je veux juste que le script soit capable de trouver l'image et de la télécharger. Actuellement l'erreur est que python ne peut pas trouver le répertoire bien que j'ai essayé de lister le répertoire en commençant par mon fichier C: mais cela n'a pas fonctionné et je l'ai donc supprimé.

import discord
from discord.ext import commands

client = commands.Bot(command_prefix = "!_")

@client.event
async def on_ready():
    print('bots online')

@client.command()
async def will(ctx):
    await ctx.send('will')

@client.event
async def on_message(message):
    if message.content.startswith('!_will'):
        embed = discord.Embed(title="A photo of Will Smith", description="Here he is", color=0x00ff00)
        embed.add_field(name="Field2", value="hi2", inline=False)
        embed.set_image(url="https://discordapp.com/assets/e4923594e694a21542a489471ecffa50.svg")
        await message.channel.send(embed=embed)
        await client.send_file(channel, "0aPw0J4.png", content="...", filename="...")

@client.event
async def on_message(message):
    if message.content.startswith('!willy'):
        file = discord.File("0aPw0J4.png", filename="0aPw0J4.png")
        await message.channel.send("0aPw0J4.png", file=file)

client.run('my bot token hidden')

J'ai essayé de changer mon répertoire par défaut, mais cela n'a pas fonctionné non plus.

1voto

marcos Points 4107

Il s'agit probablement d'un problème de répertoire de travail, il faut toujours essayer de référencer le fichier avec un chemin absolu dans des cas comme celui-ci. Utilisez l'option os pour voir s'il peut trouver le dossier contenant les images :

import os
# it will print all files in that folder
print(os.listdir('folder path of the images'))

# it will print True of False if the file exists with this path
print(os.path.isfile('absolute path of the image'))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X