Discord.py实现GitHub仓库随机图片发送功能失效求助
问题排查与解决方案
我来帮你搞定这个/mila命令的问题,你的代码里有几个关键的语法和逻辑错误,导致随机图片功能没法正常工作:
错误点分析
random.choice()的调用方式错误:这个函数需要直接传入你要随机选择的列表(也就是Images),而不是把Discord.File作为关键字参数传给它。- 文件对象创建时机错误:你应该先从列表里随机选出一个文件名,再用这个文件名创建
Discord.File对象,而不是反过来。 ctx.send()的参数传递错误:file是send()方法的关键字参数,你把它放到random.choice()里是完全不对的。
修正后的代码
import random from discord import File # 别忘了导入File类,如果还没导入的话 @bot.command() async def mila(ctx): # 图片文件名列表 images = ["photo_2022-09-29_16-56-28.jpg", "photo_2022-09-29_16-56-31.jpg", "photo_2022-09-29_16-56-33.jpg", "photo_2022-09-29_16-56-35.jpg", "photo_2022-09-29_16-56-37.jpg", "photo_2022-09-29_16-56-38.jpg", "photo_2022-09-29_16-56-41.jpg", "photo_2022-09-29_16-56-42.jpg", "photo_2022-09-29_16-56-45.jpg", "photo_2022-09-29_16-56-47.jpg"] # 第一步:随机选一个文件名 selected_image = random.choice(images) # 第二步:用选中的文件名创建File对象 image_file = File(selected_image) # 第三步:发送文件 await ctx.send(file=image_file)
额外注意事项
- 确保你的图片文件和机器人脚本在同一目录下,如果图片在子文件夹里,要把路径补全(比如
"images/photo_xxxx.jpg")。 - 确认你已经正确导入了
discord.File类,不然代码会报错找不到这个类。
内容的提问来源于stack exchange,提问作者duckgcs
相关产品推荐
相关产品推荐

