Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 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 2023-24 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.

Esercizi esame su libreria OS con concatenazione del percorso

AndreaGasparini (18850 points)
7 12 120
in Eserciziario Python by (18.9k 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.

569 views
closed

3 Answers

Best answer
andrea.sterbini (207920 points)
749 1267 2373
by (208k 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