

discord botで特定のワードに対してランダムな画像を送信するってのをやりたいんですけど、  
どうしても分からないので質問させていただきました。  
現段階では、リスト内の物をランダムに取るってのは出来てるんですが、ファイルでは無く文字列として取ってしまうのが良く分からなくて…

**使用言語**  
python 3.9.1

**ソースコード**

[code]

    import discord
    
    import random
    
    from discord import channel
    
    TOKEN = -----------------------------------
    
    CHANNEL_ID = --------------------------------
    
    client = discord.Client()
    
    @client.event
    async def on_ready():
    
    print('ログインしました')
    print(client.user.name)
    print(client.user.id)
    print('________')
    
    
    @client.event
    async def on_message(message):
    
    if message.author.bot:
    return
    
    if message.content == 'おはよう':
    await message.channel.send('おっはよ～！')
    
    
    if message.content == '暇':
    await message.channel.send('どうしたの？')
    
    if message.content == '〇〇':
    file = ["パス名","パス名"]
    file2 = random.choice(file)
    await message.channel.send(file2)
    
    #"""新規メンバー参加時に実行されるイベントハンドラ"""
    @client.event
    async def on_member_join(member):
    await member.send('よろしく～！')
    
    #bot起動時に行うイベント
    async def greet():
    channel = client.get_channel(CHANNEL_ID)
    await channel.send('みんな～！おっはよ～！')
    
    @client.event
    async def on_ready():
    await greet()
    
    client.run (TOKEN)
    
[/code]


CC BY-SA 4.0
2020-12-27T15:47:12.567
72928
2020-12-27T21:07:29.347
2020-12-27T16:14:27.050
3068
43310
question
python python3 api discord
Discord botで特定のワードに反応してリスト内にある画像をランダムに送信出来るようにしたい

[code]

    file = ["パス名","パス名"]
    file2 = random.choice(file)
    
[/code]

この段階ではまだfile2（選択されたファイル）はまだただのパスです。  
そのため、

[code]

    await message.channel.send(file2)
    
[/code]

はただパスを送信するだけになってしまいます。

discord.pyでファイルを送信するには[`discord.File`](https://discordpy.readthedocs.io/ja/latest/api.html#discord.File)
をつかいます。  
普通に書くと

[code]

    file = discord.File("ファイルパス.png", filename="ファイル名.png")
    await message.channel.send(file=file)
    
[/code]

となります。  
これを先ほどのランダム仕様にすると、

[code]

    if message.content == '〇〇':
        file = ["パス名","パス名2"]
        file2 = random.choice(file)
        file3 = discord.File(file2, filename=file2)
        await message.channel.send(file=file3)
    
[/code]

となります。


CC BY-SA 4.0
2020-12-27T21:07:29.347
72932
2020-12-27T21:07:29.347
43318
72928
answer