On 3/10/21 9:03 AM, Gabriele Battaglia wrote:
Buondì.
Sono nuovissimo nell'uso dei generatori, non li ho mai studiati ne usati
prima.
Ora devo colmare questa laguna d'ignoranza, la "g" non è un refuso! :)
Vi chiedo 2 sciocchezze, per favore rispondete col metodo AIAF: As I am
Five... si scriverà così? :)
Dunque, ho questo generatore qui:
import os
filesys = os.walk(os.getcwd())
So che posso fare una cosa del tipo:
for root, folders, files in filesys:
print(f"Root is {root}")
...eccetera eccetera.
Ma se volessi sapere solo la root e basta, come la tirerei fuori dal
generatore?
O, in altre parole, esiste solo il ciclo for, che mi permette diciamo di
guardarci dentro?
Grazie.
Gabry.
Ciao,
un generatore è a tutti gli effetti un oggetto iteratore pronto all'uso,
non serve necessariamente il for per gestire la sequenza di valori
generata, ma basta applicare la funzione next().
Nel tuo esempio potrebbe essere:
try:
root, folders, files = next(filesys)
except StopIteration:
pass # o interrompi i ciclo se se in un while ...
else:
... # usi i 3 valori ottenuti
oppure puoi applicare un default appropriato quando chiami next():
root, folders, files = next(filesys, ('', [], []))
if root != '':
... # usi i 3 valori ottenuti
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python