【发布时间】:2021-07-31 14:03:27
【问题描述】:
简而言之,我正在构建一个 Discord 机器人,它会提示用户输入包含有效图像类型的文件名。我创建了一个有效图像类型列表来检查用户输入。我还实现了一个“valid_input”循环,因此如果没有找到有效的图像类型,则会向用户发送一条错误消息并循环返回以提示输入另一个输入。但是,如果给出了具有有效图像类型的文件名,因为输入是通过列表循环的,所以每次图像类型不匹配时,都会发送错误,但随后它也会找到匹配的类型,并读取为成功。
imgTypeList = ['.jpg', '.png', '.jpeg']
validType = any(imgTypeList)
valid_input = False
while not valid_input:
await message.channel.send('[prompt to user]')
msg1 = await client.wait_for("message")
for validType in imgTypeList:
if validType in msg1.content:
os.rename('[path]\{}'.format(attatchment.filename),'[path]\{}'.format(msg1.content))
await message.channel.send('[success]')
valid_input = True
else:
await message.channel.send('[error]')
当给出具有有效图像类型的文件名时,对于与文件名中的图像类型不匹配的两种图像类型,将发送两次错误消息,并发送一次成功消息。我曾尝试在没有 any() 参数的情况下完成此操作,但结果相同。
我确信有一个简单的解决方案,但我不仅对编码很陌生,而且现在也很累。任何帮助将不胜感激!
【问题讨论】:
标签: python list loops input discord.py