Discord Python:接受以逗号

时间:2016-04-21 07:49:11

标签: python python-3.x

我一直在尝试为Discord创建一个python bot,一个免费的语音通话和聊天应用程序。我正在处理一个接受两个输入的命令。我已经让它工作了,但只有两个输入每个字长一个字。如果我希望每个输入都超过一个世界,我必须把它放在引号中。

[聊天] / dist sol eravate
[聊天] 75ly

但如果我这样做了

[Chat] / dist LHS 3447 sol
[聊天] ...

该命令不起作用,因为机器人认为“LHS”和“3447”是两个输入,当它实际上是“LHS 3447”作为一个输入而“sol”作为第二个输入时。但如果我将两个输入放在引号中,它就可以工作:

[chat] / dist“LHS 3447”“sol”
[聊天] 7ly

这是产生这些结果的代码:

async def dist(sys1,sys2):
    sys1plus = sys1.replace(" ", "+")
    sys2plus = sys2.replace(" ", "+")
    base1 = 'http://www.edsm.net/api-v1/system?sysname=' + sys1plus + '&coords=1'
    base2 = 'http://www.edsm.net/api-v1/system?sysname=' + sys2plus + '&coords=1'
    ...

我也试过了:

async def dist(sys):
    sys1, sys2 = sys.split(",")
    sys1plus = sys1.replace(" ", "+")
    sys2plus = sys2.replace(" ", "+")
    base1 = 'http://www.edsm.net/api-v1/system?sysname=' + sys1plus + '&coords=1'
    base2 = 'http://www.edsm.net/api-v1/system?sysname=' + sys2plus + '&coords=1'
    ...

但是当输入长于一个单词时,它仍然会在空格中分隔两个参数。

[聊天] / dist sol,eravate
[聊天] 7ly
[聊天] / dist sol,45 Tauri
[聊天] ......

我如何制作它以便两个输入可以包含空格,使用逗号分割它们?我理解这可能是Discord API包装器的问题,但我很感激帮助

1 个答案:

答案 0 :(得分:0)

如果命令行输入中有空格,则必须用引号括起来。 否则,命令行认为你给出了第二个或第三个参数(参数用空格分隔)

我建议使用带引号的一个参数:

/dist "sol,other thing with spaces"

async def dist(sys):
    sys1, sys2 = sys.split(",")
    # sys1 = "sol", sys2 = "other thing with spaces"
    # continue code