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.

Tipo dei file

PieMH (2300 points)
3 12 31
in Info sul corso e sugli esami by (2.3k points)
Non riesco a trovare nessuno che ne parla nemmeno nell'Internet, sicuramente non mi è chiaro qualcosa.

Se dovessi sapere di che tipo è un file come faccio?

Come faccio a distinguere:

stringa = 'stringa'     da      file='nomefile.estensione'

il tipo di entrambe le variabili di prima è lo stesso (str) quindi come si fa a distinguere una stringa da un'altra contenente il nome di un file??
482 views
closed

3 Answers

Best answer
andrea.sterbini (207940 points)
755 1270 2377
by (208k points)
selected by

Penso che esistano diverse librerie per sbirciare nei file e capire di che tipo sia.

Ad esempio filetype

_andrea_ (45670 points)
13 42 297
by (45.7k points)
Controlla che sia di tipo stringa e che finisca con ".estensione". Suppongo tu sappia che estensione cerchi, quindi basta controllare che gli ultimi x cararreri siano uguali a ".estensione", dove x è il numero di caratteri dell'estensione + 1, dove quell'1 è il punto
PieMH (2300 points)
3 12 31
by (2.3k points)
Giusto.

Però comunque è un modo di sorvolare il problema non risolvendolo in generale
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Perché? A cosa ti serve esattamente verificare il tipo di file?
PieMH (2300 points)
3 12 31
by (2.3k points)
Così per curiosità se ci fosse un metodo più generale, ho provato con _io.BufferedReader(/Writer) ma non funziona come speravo
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Non so se c'è un altro modo ma se hai già l'estensione da cercare puoi usare quello che ho detto io
marco.giuliani (23860 points)
4 13 62
by (23.9k points)
Oltre a come dice Andrea, puoi anche usare un "in" per vedere se l'estensione è nel nome del file, se sai che estensione stai cercando. Altrimenti, se vuoi solamente vedere se il file ha un estensione, puoi vedere se la stringa ha un punto, e stamparti i caratteri dal punto in poi, per tornarti il tipo di estensione