Do you need any help?

Esercizi esame su libreria OS con concatenazione del percorso

AndreaGasparini (18730 points)
6 12 118
asked Jan 24, 2020 in Eserciziario Python by AndreaGasparini (18,730 points)

Svolgendo gli esami degli anni passati e gli esercizi presenti sull'eserciziario ho notato che quando è richiesto di ricercare in una directory il grader non considera corretti i percorsi creati utilizzando la funzione os.path.join, ma solamente quelli tramite concatenazione del carattere '/'. Leggendo il forum dello scorso anno ho notato che questo ha portato anche qualche studente a dei problemi durante la valutazione del proprio esame, per esempio utilizzando '\' per la concatenazione che su Windows sarebbe allo stesso modo corretto.

Perciò volevo sapere in definitiva quale fosse il metodo "corretto" che ci troveremo a dover utilizzare in sede d'esame.

395 views

3 Answers

Best answer
andrea.sterbini (172780 points)
513 935 1789
answered Jan 24, 2020 by andrea.sterbini (172,780 points)
selected Jan 24, 2020 by AndreaGasparini
Per favore usate "/" che funziona sia in Linux che OSX e Windows.
In questo modo mi è più facile scrivere i test.

(e mi evitate di dover correggere a mano i vostri programmi per i test finali su Linux che mi servono a controllare e costruire il voto finale)
edoardottt (8210 points)
1 3 37
answered Jan 24, 2020 by edoardottt (8,210 points)
Bella domanda...
palombaro_rosa (1430 points)
1 2 7
answered Jan 24, 2020 by palombaro_rosa (1,430 points)

La soluzione é corretta in ogni caso, ma per passare il grader devi usare la struttura di path usata in Linux e MacOS (ovvero '/' invece di '\'), usando il professore Linux e facendo girare i test su macchina virtuale Linux (la libreria os ha alcune funzioni che sono dipendenti dal sistema host, come questa ad esempio).

Per conferma in qualsiasi terminale Python puoi eseguire il seguente codice:

import os

os.sep

ed otterrai come output il separatore usato sul tuo sistema.

P.S. Come workaround puoi sostituire nell' output i caratteri se il grader continuerá ad accettare solo quel formato di output