Problema nei test del terzo esercizio del quarto hw

N
Nando (340 points)
3 8 9
asked Jan 4, 2019 in Es3 by Nando (340 points)
recategorized Jan 5, 2019 by andrea.sterbini
Quando replico i test fatti dal tester su dirs o dirs/immagini me li passa tutti ma nel momento in cui mando in play il test mi dice che non trova dirs. Nella funzione ricorsiva faccio chdir path e prima del return torno al padre. Qualcuno ha idee su come risolvere o su quale possa essere il problema?
159 views

2 Answers

l
leoli (2930 points)
0 4 19
answered Jan 4, 2019 by leoli (2,930 points)
Il problema potrebbe essere chdir:

quello che fa è cambiare la cartella di lavoro. Quindi una volta cambiata cartella cambia anche la path per accedere ai file...

Prova o a non usare chdir oppure fai attenzione ai nomi delle path
N
Nando (340 points)
3 8 9
commented Jan 4, 2019 by Nando (340 points)
Non credo sia chdir perché se eseguo io i test fatti dal tester funziona e senza chdir ho il problema dei path più lunghi di 256 caratteri
l
leoli (2930 points)
0 4 19
commented Jan 4, 2019 by leoli (2,930 points)

Con "ritorno al padre" intendi che ritorni alla cartella di partenza?

Prova a scompattare il tutto in una directory con un nome breve

Windows ha un limite di 256 caratteri per i path, quindi unzippate in una directory con percorso corto (ad esempio d:\homework04 )

!!!

andrea.sterbini (172300 points)
510 927 1776
answered Jan 5, 2019 by andrea.sterbini (172,300 points)
Il problema è che os.chdir non segue i link simbolici e sulla VM la directory dirs è un link simbolico.
Usa os.path.realpath per ottenerne il path vero (vedi http://docs.python.org/library/os.path.html#os.path.realpath)
Oppure usa os.listdir per ottenere i nomi dei file contenuti in una directory senza dover entrare nella directory