Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2021-22 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

Esercizi esame su libreria OS con concatenazione del percorso

AndreaGasparini (18730 points)
6 12 118
in Eserciziario Python by (18.7k 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.

397 views
closed

3 Answers

Best answer
andrea.sterbini (173640 points)
516 941 1795
by (174k points)
selected by
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
by (8.2k points)
Bella domanda...
palombaro_rosa (1430 points)
1 2 7
by (1.4k 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