Buongiorno a tutti, ho appena realizzato una funzione che ha uno strano comportamento a seconda di un certo input.
La funzione e' questa: ======================================= def subfolder(cartella): sotto_cartelle = [] # ritorna una lista di cartelle stop = 0 # livello di profondita' delle sottocartelle for root, dirs, files in os.walk(cartella): if stop == 1: return sotto_cartelle else: for i in dirs: sotto_cartelle.append(os.path.join(root,i)) stop = stop + 1 return sotto_cartelle (X) ======================================= in pratica passo alla funzione una cartella e mi restituisce una lista delle sottocartelle di primo livello nell'albero della directory. Ad esempio: cartella = c: Sottocartelle: c:\pippo c:\pluto c:\paperino ... Successivamente eseguo questa porzione di codice in una parte del programma, con il quale ricavo le sottocartelle di ogni sottocartella di primo livello: ======================================= lista_cartelle = [] # lista delle temp = [] temp2 = [] temp = subfolder(cartella) # inserisco la lista delle cartelle di primo livello for i in temp: temp2 = [] temp2 = subfolder(i) # contiene la lista delle sottocartelle della cartella 'i' for j in temp2: lista_cartelle.append(j) ======================================= adesso succede che se ometto dalla funzione subfolder() la riga segnata con (X) [return sotto_cartelle], il programma si blocca con un errore perche' se una delle sottocartelle di primo livello e' vuota, il ciclo "for j in temp2" si ferma con un Nonetype error. Tuttavia se inserisco la riga (X) di ritorno del valore il programma funziona. Quello che non capisco e' che in ogni caso dovrei trovare una cartella vuota e non un valore None. Avete idea di questo strano comportamento? massimo _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python