PATH DEL FILE

9
BIOINFO3 - Lezione 27 1 PATH DEL FILE PATH DEL FILE Bisogna fare molta attenzione al path del file da aprire. Per non sbagliare converrebbe passare sempre il path assoluto del file. Se si passa invece solo il nome, senza il path completo bisogna essere sicuri che il file cercato si trovi nella directory corrente, da cui è lanciato il programma. Se ad esempio lanciamo il programma da un’altra directory (facendo cd .. ci spostiamo alla directory superiore) ecco che il comando di open fallisce non trovando il file nella directory corrente (/home/nicola/ Addirittura fallisce anche la richiesta di esecuzione del programma, che non viene trovato nella directory /home/nicola

description

PATH DEL FILE. Bisogna fare molta attenzione al path del file da aprire. Per non sbagliare converrebbe passare sempre il path assoluto del file. - PowerPoint PPT Presentation

Transcript of PATH DEL FILE

Page 1: PATH DEL FILE

BIOINFO3 - Lezione 27 11

PATH DEL FILEPATH DEL FILE

Bisogna fare molta attenzione al path del file da aprire. Per non sbagliare converrebbe passare sempre il path assoluto del file.

Se si passa invece solo il nome, senza il path completo bisogna essere sicuri che il file cercato si trovi nella directory corrente, da cui è lanciato il programma. Se ad esempio lanciamo il programma da un’altra directory (facendo cd .. ci spostiamo alla directory superiore) ecco che il comando di open fallisce non trovando il file nella directory corrente (/home/nicola/

Addirittura fallisce anche la richiesta di esecuzione del programma, che non viene trovato nella directory /home/nicola

Page 2: PATH DEL FILE

BIOINFO3 - Lezione 27 22

TEST SUI FILETEST SUI FILEIn un programma Perl si possono fare direttamente dei semplici test sui file, ad esempio per verificarne l’esistenza o il tipo. Si può inserire il test in una istruzione if per aprire il file solo se questo esiste

-e filenameVero se il file di nome ‘filename’ esiste

-d filenameVero se il file di nome ‘filename’ è una directory

-z filenameVero se il file di nome ‘filename’ è vuoto (dimensione 0)

-s filenameRestituisce la dimensione del file di nome ‘filename’

-r filenameVero se il file di nome ‘filename’ è leggibile

-w filenameVero se il file di nome ‘filename’ è scrivibile

Page 3: PATH DEL FILE

BIOINFO3 - Lezione 27 33

DIRECTORYDIRECTORY

Le directory sono dei file che contengono nomi di file. In pratica possiamo pensarle come dei contenitori di file. Perl permette di aprire e leggere una directory in modo simile a quanto avviene per i file

opendir(HANDLE,nome-directory)

Apre la directory specificata, associandola ad un HANDLE

readdir (HANDLE)

Ogni volta che viene chiamata, questa funzione restituisce il nome del file successivo nella directory. Restituisce FALSO quando ha esaurito l’elenco dei file

prova.pltest.plarray.pl

..

.

Page 4: PATH DEL FILE

BIOINFO3 - Lezione 27 44

DIRECTORYDIRECTORYEsempio esecuzione

PRIMO CICLO

$d=<>=“frerfref\n”

$d=“frerfref”

-e $d = -e “frerfref” FALSO

print “file inesistente”

SECONDO CICLO

$d=<>=“numeri\n”

$d=“numeri”

-e $d = -e “numeri” VERO

-d $d = -d “numeri” FALSO

print “non directory”

Esempio. Stampare il nome dei file di una directory letta da input

Page 5: PATH DEL FILE

BIOINFO3 - Lezione 27 55

DIRECTORYDIRECTORYTERZO CICLO

$d==<>=“bioinfo3\n”

$d=“bioinfo3”

-e $d = -e “bioinfo3” VERO

-d $d = -d “bioinfo3” VERO

print “la dir. contiene”

Con la opendir D diventa una handle per la directory “bioinfo3”.

Quindi si inizia a ciclare su tutti i file della directory

Ad ogni ciclo $f riceve dalla funzione readdir il nome di un file della directory, che viene stampato.

Notare che anche i file “.” e “..” sono ricevuti

Page 6: PATH DEL FILE

BIOINFO3 - Lezione 27 66

OPERAZIONI SU FILEOPERAZIONI SU FILE

Perl offre anche delle funzioni equivalenti ai comandi di sistema UNIX relativi alla gestione dei file (creazione e cancellazione di directory, cancellazione di file, ecc…)

chdir directory

cambia la directory corrente (come cd di UNIX)

rmdir directory

cancella la directory indicata

mkdir (directory,modo)

Crea una directory con il nome dato, modo sono i diritti (ad esempio 777)

rename (old,new)

Rinomina il file di nome old in uno di nome new (come mv diUNIX)

unlink lista

Cancella i file della lista (come rm di UNIX)

Page 7: PATH DEL FILE

BIOINFO3 - Lezione 27 77

ESERCIZIOESERCIZIO

Scrivere un programma Perl che:

Stampa a video la frase: “inserire il nome del file :”

Legge da tastiera il nome di un file

Se il file esiste:

lo apre e ne legge le righe ad una ad una, contandone il numero

stampa a video la frase: “il file nome-del-file contiene numero-righe righe\n”

Se il file non esiste:

stampa a video la frase: “il file nome-del-file non esiste\n”

Page 8: PATH DEL FILE

BIOINFO3 - Lezione 27 88

SOLUZIONE ESERCIZIOSOLUZIONE ESERCIZIO

Page 9: PATH DEL FILE

BIOINFO3 - Lezione 27 99

RIEPILOGORIEPILOGO

•Operazioni su file e directory