Python 发送到通道时接受参数
我正在尝试创建一个discord机器人,它接受两个参数,将它们格式化为文本,然后发送到一个频道。使用此代码它可以工作,但不发送自定义内容。只能预先定义,我将如何执行此操作Python 发送到通道时接受参数,python,discord,discord.py,Python,Discord,Discord.py,我正在尝试创建一个discord机器人,它接受两个参数,将它们格式化为文本,然后发送到一个频道。使用此代码它可以工作,但不发送自定义内容。只能预先定义,我将如何执行此操作 if message.content == '!settrend': async def args(arg1, arg2): output = '' output += f"Changed trend of {arg1} to {arg2}"
if message.content == '!settrend':
async def args(arg1, arg2):
output = ''
output += f"Changed trend of {arg1} to {arg2}"
await message.channel.send(output)
await args("test", "test") # I want this to be able to have custom arguments by the command.
而不是检查
message.content=='!settrend'
,您需要先将消息内容按空格拆分,然后检查您获得的第一个令牌是否为!设置趋势“
因此,将第一行替换为:
arguments = message.content.split()
if arguments[0] == '!settrend':
然后,最后:
await args(arguments[1], arguments[2])
请注意,此解决方案要求这两个参数不包含空格。如果希望能够使用引号指定间隔参数(例如:!settrend“第一个参数”“第二个参数”
),请使用shlex.split
而不是标准的字符串拆分方法:
import shlex
arguments = shlex.split(message.content)
而不是检查message.content=='!settrend'
,您需要先将消息内容按空格拆分,然后检查您获得的第一个令牌是否为!设置趋势“
因此,将第一行替换为:
arguments = message.content.split()
if arguments[0] == '!settrend':
然后,最后:
await args(arguments[1], arguments[2])
请注意,此解决方案要求这两个参数不包含空格。如果希望能够使用引号指定间隔参数(例如:!settrend“第一个参数”“第二个参数”
),请使用shlex.split
而不是标准的字符串拆分方法:
import shlex
arguments = shlex.split(message.content)