如何让 Discord bot 使用用户选择的号码名称发送图像? (Python 3.5.x)
Posted
技术标签:
【中文标题】如何让 Discord bot 使用用户选择的号码名称发送图像? (Python 3.5.x)【英文标题】:How to make Discord bot send image with the name of number chosen by user? (Python 3.5.x) 【发布时间】:2018-02-10 00:02:31 【问题描述】:我仍在学习 python 和编程,但我遇到了一个我无法解决的问题。我想制作一个命令,让机器人发送一个图像,其名称对应于用户写的数字(例如,用户写了“!image_nr 22”,机器人发送 22.jpg)。我只编写了从文件夹发送随机图像的代码,但我无法选择。这是我针对此问题的最新代码:
elif message.content.startswith("!obrazeknr"): #missing an argument or something, idk what to make here
obrazDirectoryChc = "C:/Users/Lewando54/Downloads/Localisation/English/" + liczba + ".jpg"
await client.send_file(message.channel, obrazDirectoryChc, content=obrazName[1])
【问题讨论】:
【参考方案1】:你可以试试这个 elif 语句:
msg = message.content[12:] #skips the command word and the '!' and the " "
msg = msg.split() #split the message into an array at the spaces.
#msg = ["!image_nr","22"]
if msg[0] == "!image_nr" and msg[1].isnumeric():
obrazDirectoryChc = "C:/Users/Lewando54/Downloads/Localisation/English/" +
liczba + ".jpg"
await client.send_file(message.channel, obrazDirectoryChc,
content=obrazName[int(msg[1]])
现在它应该发送用户请求的照片。
例如!obrazeknr image_nr 22
希望这会有所帮助。抱歉让您久等了;我今天才看到这个。
可能是一个更好的主意,下次在https://programming.***.com 上发帖可以为您提供更多帮助。
【讨论】:
【参考方案2】:它有效。我稍微修改了一下,它就可以工作了。谢谢你的想法:D
elif message.content.startswith('!obrazeknr'):
msg1 = message.content #skips the command word and the '!' and the " "
msg1 = msg1.split() #split the message into an array at the spaces.
#msg = ["!obrazeknr","22"]
if msg1[0] == "!obrazeknr" and msg1[1].isnumeric() == True:
await client.send_file(message.channel, "C:/Users/Lewando54/Downloads/Localisation/English/" + str(int(msg1[1])) + ".jpg")
【讨论】:
以上是关于如何让 Discord bot 使用用户选择的号码名称发送图像? (Python 3.5.x)的主要内容,如果未能解决你的问题,请参考以下文章
如何让 discord bot 等待回复 5 分钟然后发送消息?使用不和谐的 js
Discord.py bot - 如何让机器人在 DM 中向我发送用户的消息?