我一直在尝试为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包装器的问题,但我很感激帮助
答案 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