6.2 os.path -- Tipiche manipolazioni dei nomi di percorso

Questo modulo implementa alcune utili funzioni di manipolazione dei nomi di percorso.

In Winidows, molte di queste funzioni non supportano propriamente i nomi di percorso di tipo UNC. Le funzioni splitunc() e ismount() li gestiscono correttamente.

abspath( path)
Restituisce la versione assolutizzata e normalizzata di un percorso path. In molte piattaforme, questo è equivalente a normpath(join(os.getcwd(), path)). Nuovo nella versione 1.5.2.

basename( path)
Restituisce la base del nome di percorso path. Ciò corrisponde alla seconda metà della coppia restituita da split(path). Notate che il risultato di questa funzione è diverso da quello del programma Unix basename; dove basename avendo in input '/foo/bar/' restituisce 'bar', la funzione basename() restituisce una stringa vuota ('').

commonprefix( list)
Restituisce la più lunga stringa possibile (considerata carattere per carattere) che costistuisce il prefisso comune a tutti i percorsi nella lista list. Se la lista è vuota, restituisce la stringa vuota (''). Notate che questa funzione può restituire un percorso non valido, considerato che lavora un carattere per volta.

dirname( path)
Restituisce il nome di directory contenuto nel percorso path. Corrisponde alla prima metà della coppia restituita da split(path).

exists( path)
Restituisce True se path fa riferimento ad un percorso esistente.

expanduser( path)
Restituisce la stringa usata come argomento, sostituendo la sua componente iniziale uguale a "~" o "~user", con la directory home dell'utente user. Un carattere iniziale come "~" viene sostituito dal valore della variabile di ambiente HOME; un inizio della stringa come "~user" viene sostituito con la directory associata all'utente, ottenuta usando il modulo built-in pwd. Se l'espansione dell'argomento di input fallisce, o se l'argomento non comincia con un carattere tilde ("~"), viene restituito l'argomento di input non modificato. Su Macintosh, viene sembre restituito path non modificato.

expandvars( path)
Restituisce l'argomento, espandendo le variabili ambientali. Sottostringhe del tipo "$name" o "${name}" vengono sostituite dal valore della variabile ambientale name. Nomi specificati non correttamente o che si riferiscono a variabili non esistenti non vengono modificati. Su Machintosh, viene sempre restituito path non modificato.

getatime( path)
Restituisce il tempo dell'ultimo accesso a path. Il valore restituito è un numero che corrisponde al numero di secondi dall'epoca di riferimento (vedete il modulo time). Solleva l'eccezione os.error se il file non esiste o non è accessibile. Nuovo nella versione 1.5.2. Modificato nella versione 2.3: Se os.stat_float_times() restituisce True, restituisce True, il risultato è un numero in virgola mobile.

getmtime( path)
Restituisce il tempo dall'ultima modifica a path. Il valore restituito è un numero che corrisponde al numero di secondi dall'epoca di riferimento (vedete il modulo time). Solleva l'eccezione os.error se il file non esiste o non è accessibile. Nuovo nella versione 1.5.2. Modificato nella versione 2.3: Se os.stat_float_times() restituisce True, restituisce True, il risultato è un numero in virgola mobile.

getctime( path)
Restituisce il ``ctime'' del sistema, che, in qualche sistema (come Unix) corrisponde al tempo dell'ultima modifica, mentre in altri (come Windows) corrisponde al tempo di creazione di path. Il valore restituito è un numero che corrisponde al numero di secondi dall'epoca di riferimento (vedete il modulo time). Se il file indicato da path non esiste o non è accessibile, viene sollevata l'eccezione os.error. Nuovo nella versione 2.3.

getsize( path)
Restituisce la dimensione, in byte, di path. Solleva l'eccezione os.error se il file non esiste o non è accessibile. Nuovo nella versione 1.5.2.

isabs( path)
Restituisce True se path indica un percorso assoluto (comincia con un carattere slash ("/")).

isfile( path)
Restituisce True se path indica un file regolare esistente. Questa funzione segue i link simbolici, quindi sia islink() che isfile() possono restituire vero per uno stesso valore di path.

isdir( path)
Restituisce True se path rappresenta una directory esistente. Questa funzione segue i link simbolici, quindi sia islink() che isdir() possono restituire vero per uno stesso valore di path.

islink( path)
Restituisce True se path si riferisce ad un elemento di directory corrispondente ad un link simbolico. Restituisce sempre False su piattaforme in cui i link simbolici non vengono supportati.

ismount( path)
Restituisce True se il percorso indicato da path è un mount point (NdT: punto di mount): vale a dire un punto nel filesystem dove viene collegato un altro file system. La funzione controlla se la directory genitrice di path, ovvero path/.., si trova su un dispositivo diverso da path, oppure se path/.. e path puntano allo stesso i-node sullo stesso dispositivo -- questo metodo dovrebbe poter identificare i punti di mount su tutte le varianti Unix e POSIX.

join( path1[, path2[, ...]])
Unisce in modo intelligente uno o più componenti di un percorso. Se una qualsiasi delle componenti è un percorso assoluto, tutte quelle precedenti vengono scartate, e l'unione delle componenti continua. Il valore restituito è la concatenazione di path1 e facoltativamente path2, eccetera, con esattamante un separatore di directory (os.sep) inserito tra le componenti, a meno che path2 non sia vuoto. Notate che in Windows, dato che esiste una directory corrente per ogni drive, os.path.join("c:", "foo") rappresenta un percorso relativo alla directory corrente del drive C: (c:foo), e non c:\\foo.

normcase( path)
Normalizza le maiuscole/minuscole all'interno del nome di un percorso. In Unix, restituisce path non modificato; su file system non sensibili alla differenza tra maiuscole e minuscole, converte in minuscole tutte le lettere di path. In Windows, converte inoltre le barre "/" in barre rovesciate "\".

normpath( path)
Normalizza il nome di un percorso. Questa funzione elimina i separatori ridondanti ed i riferimenti a directory di livello superiore, per esempio A//B, A/./B e A/foo/../B diventano tutti A/B. Non trasforma maiuscole in minuscole (usate normcase() per questo). In Windows, converte le barre "/" in barre rovesciate "\".

realpath( path)
Restituisce il percorso canonico di uno specifico nome di file, eliminando i link simbolici presenti nel percorso. Disponibilità: Unix. Nuovo nella versione 2.2.

samefile( path1, path2)
Restituisce True se entrambi gli argomenti, rappresentanti nomi di percorso, fanno riferimento allo stesso file o alla stessa directory (come indicato dal numero di dispositivo e dal numero di i-node). Solleva un'eccezione se la chiamata ad os.stat() su ciascuno degli argomenti fallisce. Disponibilità: Macintosh, Unix.

sameopenfile( fp1, fp2)
Restituisce True se gli oggetti file fp1 e fp2 fanno riferimento allo stesso file. I due oggetti file possono rappresentare differenti descrittori di file. Disponibilità: Macintosh, Unix.

samestat( stat1, stat2)
Restituisce True se le tuple di tipo stat, stat1 e stat2 si riferiscono allo stesso file. Tali tuple possono essere state restituite da fstat(), lstat(), o stat(). Questa funzione implementa il codice di confronto usato internamente da samefile() e sameopenfile(). Disponibilità: Macintosh, Unix.

split( path)
Suddivide il percorso path in una coppia, (head, tail), dove tail è l'ultima componente del nome del percorso e head è tutto ciò che la precede. La parte tail non contiene mai una barra "/"; se l'argomento path termina con una barra, tail sarà una stringa vuota. Se non c'è nessuna barra in path, head sarà una stringa vuota. Se path è una stringa vuota, sia head che tail saranno vuote. Eventuali barre aggiuntive vengono rimosse da head, a meno che questi non rappresenti la directory radice (composta solo da una o più barre). In quasi tutti i casi, join(head, tail) ricostruisce path (l'unica eccezione si verifica quando barre multiple separano head da tail).

splitdrive( path)
Separa il nome di percorso path in una coppia (drive tail), dove drive corrisponde al drive specificato nel percorso oppure è una stringa vuota. Sui sistemi che non usano specificare il drive nel percorso, drive sarà sempre una stringa vuota. In tutti i casi, drive + tail sarà sempre equivalente a path. Nuovo nella versione 1.3.

splitext( path)
Separa il nome di percorso path in una coppia (root, ext), tale che radice + estensione == path, e con ext vuoto oppure iniziante con un punto e contenente al massimo un punto.

walk( path, visit, arg)
Chiama la funzione argomento visit con gli argomenti (arg, dirname, nomes), per ciascuna directory contenuta nell'albero delle directory con radice in path (includendo lo stesso path, se è una directory). L'argomento dirname specifica la directory che si sta visitando, l'argomento names elenca i file nella suddetta directory (ottenuta chiamando os.listdir(dirname)). La funzione visit può modificare names per influenzare l'insieme delle directory visitate al di sotto di dirname, e quindi per evitare di visitare alcune sezioni dell'albero delle directory (l'oggetto a cui si riferisce names va modificato direttamente, usando del oppure l'assegnamento di una fetta).

Note: Link simbolici che puntano ad altre directory non vengono trattati come sotto directory, e quindi walk() non li visiterà. Per visitare una directory puntata da un link, dovete identificarla con os.path.islink(file) e os.path.isdir(file), quindi chiamare walk() a seconda delle esigenze.

Note: Il più recente generatore os.walk() fornisce funzionalità simili e può essere più facile da usare.

supports_unicode_filenames
Vale True se una stringa Unicode arbitraria può venire usata come nome di file (nelle limitazioni imposte dal file system), e se os.listdir() restituisce stringhe Unicode in corrispondenza di un argomento Unicode. Nuovo nella versione 2.3.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.