2017-08-31 1 views
1

J'essaie d'obtenir un bot de discord pour pouvoir télécharger toutes les images d'un dossier quand un utilisateur tape 'uploadAll'. Le code est:Attendre une fonction qui a une erreur de syntaxe de boucle for

def get_image(path): 
    image_list = [] 
    for filename in glob.glob(path): #appends opened images from folder 
     im = Image.open(filename) #into list image_list and returns it 
     image_list.append(im) 
    return image_list 

async def iter_image(path):   #uploads images in the list 
    for i in get_image(path): 
     client.send_file(discord.Object(id='SERVER_ID'),i) 

@client.command(pass_context=True) 
async def uploadAll(self):   #Should trigger above method 
    await iter_image('PATH_TO_FOLDER') 

Les derniers résultats de la fonction dans: TypeError: NoneType objet ne peut pas être utilisé dans 'attendent' l'expression. Je ne peux pas attendre iter_image car il possède une boucle for-loop. Des solutions sur comment je peux obtenir une boucle d'événements pour déclencher la boucle for? Merci.

+0

Vous ne devriez pas envoyer à un ID de serveur ou discord.Server objet plus. Cela a fonctionné lorsque le canal par défaut a partagé son ID avec le serveur, mais les serveurs ne sont plus tenus d'avoir un canal avec cette propriété car le concept de "canal par défaut" a été supprimé. – squaswin

Répondre

2

Je suis assez sûr que cela devrait fonctionner si vous ajoutez await ici

await client.send_file(discord.Object(id='SERVER_ID'), i) 
+0

Merci. Je l'ai essayé mais j'ai une autre erreur: L'exception de tâche n'a jamais été récupérée – Primusa

+0

Hey je ne sais pas si vous l'avez déjà corrigé, mais je crois que vous pourriez essayer de mettre la ligne dans un essai/à l'exception –