Comment utiliser iglob

Fermé
noradan Messages postés 18 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 7 janvier 2024 - 8 juil. 2020 à 16:19
yg_be Messages postés 22838 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 mai 2024 - 8 juil. 2020 à 19:44
Bonjour,

la question est dans le sujet.

On dit partout que iglob retourne un "itérable" sauf que.... ce prétendu itérable ne s'itère pas !

si je fait
tt=iglob("path/*)

et bien ni tt[5]

ni
for k in tt: s+=1

ne fonctionne comme ça fonctionne avec un itérable.

D'ailleurs iglob avoue retourner un générateur et pas un itérable.

d'où la question.

Mon idée étant de faire un fichier contenant la liste des fichiers d'un ou plusieurs répertoires.
Utiliser glob étant alors idiot puisque je me fiche d'avoir une liste de chemins

merci
A voir également:

1 réponse

yg_be Messages postés 22838 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 mai 2024 1 471
8 juil. 2020 à 18:20
bonjour,
as-tu fait
print(tt)
?
merci, quand tu partages du code, d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
merci également de penser à partager un exemple complet.
0
yg_be Messages postés 22838 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 mai 2024 1 471
Modifié le 8 juil. 2020 à 19:42
quand tu fais tt[5], tu n’itères pas. ce n'est pas parce que tu connais des objets qui sont itérables et subscriptables que tous les itérables sont subscriptables.
tu peux obtenir, si tu le souhaites, du subscriptable à partir d'un générateur ou d'un itérable. il suffit de créer une liste.

chez moi, ceci fonctionne bien:
path="c:\*.*"
ss=0
for k in glob.iglob(path):
    ss+=1
print("ss: ",ss)
0
yg_be Messages postés 22838 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 mai 2024 1 471 > yg_be Messages postés 22838 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 mai 2024
8 juil. 2020 à 19:44
je pense que ton erreur principale est de faire
tt=iglob("path/*)
, cela ne fait probablement pas ce que tu imagines.
0