Codice sorgente: Lib/posixpath.py (per POSIX) andLib/ntpath.py (per Windows NT).
Questo modulo implementa alcune utili funzioni sui nomi di percorso. Per leggere o scrivere file vedere open()
, e per accedere al filesystem vedere il moduloos
. I parametri del percorso possono essere passati come stringhe o byte. Le applicazioni sono incoraggiate a rappresentare i nomi dei file come stringhe di caratteri (Unicode). Sfortunatamente, alcuni nomi di file potrebbero non essere presentabili come stringhe su Unix, quindi le applicazioni che devono supportare i nomi di file arbitrari su Unix dovrebbero utilizzare gli oggetti bytes per rappresentare i nomi dei percorsi. Viceversa, l’utilizzo di oggetti bytes non può rappresentare tutti i nomi di file su Windows (nella codifica standard mbcs
), quindi Windowsapplications dovrebbe utilizzare gli oggetti string per accedere a tutti i file.
A differenza di una shell unix, Python non esegue espansioni automatiche del percorso.Funzioni come expanduser()
e expandvars()
possono essere richiamate in modo esplicito quando un’applicazione desidera un’espansione del percorso simile alla shell. (Vedi ancheil modulo glob
.)
Vedere anche
Il modulo pathlib
offre oggetti percorso di alto livello.
Nota
Tutte queste funzioni accettano solo byte o solo oggetti stringa comei loro parametri. Il risultato è un oggetto dello stesso tipo, se viene restituito un percorso o un nome di file.
Nota
Poiché diversi sistemi operativi hanno diverse convenzioni sui nomi dei percorsi, ci sono diverse versioni di questo modulo nella libreria standard. Il moduloos.path
è sempre il modulo path adatto per il sistema operativo su cui Python è in esecuzione e quindi utilizzabile per i percorsi locali. Tuttavia, è anche possibile importare e utilizzare i singoli moduli se si desidera manipolareun percorso che è sempre in uno dei diversi formati. Hanno tutti la stessa interfaccia:
-
posixpath
per percorsi in stile UNIX -
ntpath
per i percorsi di Windows
Cambiato nella versione 3.8: exists()
, lexists()
, isdir()
, isfile()
,islink()
, e ismount()
ora restituisci False
invece di creare un’eccezione per i percorsi che contengono caratteri o bytesunrepresentable a livello del sistema operativo.
os.path.
abspath
(percorso)¶
Restituisce una versione normalizzata e assolutizzata del percorso percorso. Su mostplatforms, questo equivale a chiamare la funzione normpath()
asfollows: normpath(join(os.getcwd(), path))
.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
basename
(percorso)¶
Restituisce il nome di base del percorso percorso. Questo è il secondo elemento di thepair restituito passando path alla funzione split()
. Si noti cheil risultato di questa funzione è diversodal programma Unix basename; dove basename per'/foo/bar/'
restituisce 'bar'
, la funzione basename()
restituisce una stringa vuota (''
).
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
commonpath
(percorsi)¶
Restituisce il sotto-percorso comune più lungo di ogni percorso nel sequencepaths. Raise ValueError
se i percorsi contengono entrambi i nomi di percorso assoluti e relativi, i percorsi si trovano sulle diverse unità orif i percorsi sono vuoti. A differenza di commonprefix()
, questo restituisce il percorso avalid.
Disponibilità: Unix, Windows.
Nuovo nella versione 3.5.
Modificato nella versione 3.6: accetta una sequenza di oggetti simili a percorsi.
os.path.
commonprefix
(list)¶
Restituisce il prefisso del percorso più lungo (preso carattere per carattere) che è unprefisso di tutti i percorsi nell’elenco. Se la lista è vuota, restituisci la stringa vuota (''
).
Nota
Questa funzione può restituire percorsi non validi perché funziona un carattere alla volta. Per ottenere un percorso valido, vederecommonpath()
.
>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
dirname
(percorso)¶
Restituisce il nome della directory del percorso percorso. Questo è il primo elemento dila coppia restituita passando il percorso alla funzione split()
.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
exists
(percorso)¶
Restituisce True
se percorso fa riferimento a un percorso esistente o a un descrittore openfile. Restituisce False
per collegamenti simbolici interrotti. Su alcune piattaforme, questa funzione può restituire False
se non viene concessa l’autorizzazione per eseguire os.stat()
sul file richiesto, anche se il percorso esiste fisicamente.
Cambiato nella versione 3.3: il percorso può ora essere un numero intero: True
viene restituito se è un descrittore di file aperto, False
altrimenti.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
lexists
(percorso)¶
Restituisce True
se percorso fa riferimento a un percorso esistente. Restituisce True
per link simbolici interrotti. Equivalente a exists()
su piattaforme prive dios.lstat()
.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
expanduser
(percorso)¶
Su Unix e Windows, restituire l’argomento con un componente iniziale di ~
o~user
sostituito dalla directory home di quell’utente.
Su Unix, un ~
iniziale viene sostituito dalla variabile d’ambiente HOME
se impostata; altrimenti la directory home dell’utente corrente viene cercata nella directory password attraverso il modulo incorporato pwd
. Un ~user
iniziale viene cercato direttamente nella directory delle password.
Su Windows, USERPROFILE
verrà utilizzato se impostato, altrimenti verrà utilizzata una combinazione di HOMEPATH
e HOMEDRIVE
. Un ~user
iniziale viene gestito eliminando l’ultimo componente della directory dal percorso createduser derivato sopra.
Se l’espansione non riesce o se il percorso non inizia con una tilde, il percorso isreturned invariato.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
Modificato nella versione 3.8: non utilizza più HOME
su Windows.
os.path.
expandvars
(percorso)¶
Restituisce l’argomento con le variabili di ambiente espanse. Le sottostringhe del modulo$name
o ${name}
sono sostituite dal valore di environment variablename. I nomi delle variabili malformate e i riferimenti a variabili non esistenti sonolasciato invariato.
Su Windows, le espansioni %name%
sono supportate oltre a$name
e ${name}
.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
getatime
(percorso)¶
Restituisce l’ora dell’ultimo accesso del percorso. Il valore restituito è un numero in virgola mobile che fornisceil numero di secondi dall’epoca (vedere il modulo time
). SollevareOSError
se il file non esiste o è inaccessibile.
os.path.
getmtime
(percorso)¶
Restituisce l’ora dell’ultima modifica del percorso. Il valore restituito è un numero in virgola mobile che dà il numero di secondi dall’epoca (vedere il modulo time
).Sollevare OSError
se il file non esiste o è inaccessibile.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
getctime
(percorso)¶
Restituisce il ctime del sistema che, su alcuni sistemi (come Unix) è il momento dell’ultima modifica dei metadati e, su altri (come Windows), è il tempo di creazione per il percorso.Il valore di ritorno è un numero che dà il numero di secondi dall’epoca (seethe time
modulo). Sollevare OSError
se il file non esiste oè inaccessibile.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
getsize
(percorso)¶
Restituisce la dimensione, in byte, del percorso. Sollevare OSError
se il file non esiste o è inaccessibile.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
isabs
(percorso)¶
Restituisce True
se percorso è un percorso assoluto. Su Unix, ciò significa che inizia con una barra, su Windows che inizia con una barra (posteriore)dopo aver tagliato una potenziale lettera di unità.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
isfile
(percorso)¶
Restituisce True
se il percorso è un file normale existing
.Questo segue i collegamenti simbolici, quindi sia islink()
che isfile()
possono essere veri per lo stesso percorso.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
isdir
(percorso)¶
Restituisce True
se il percorso è una directory existing
. Questo segue i collegamenti simbolici, quindi sia islink()
che isdir()
possono essere veri per lo stesso percorso.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
islink
(percorso)¶
Restituisce True
se percorso fa riferimento a un existing
directoryentry che è un collegamento simbolico. Sempre False
se i collegamenti simbolici non sono supportati dal runtime Python.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
ismount
(percorso)¶
Restituisce True
se pathname path è un punto di montaggio: un punto in un sistema di file in cui è stato montato un file system diverso. Su POSIX, thefunction controlla se il genitore di path, path/..
, si trova su un dispositivo diverso da path, o se path/..
e path puntano allo stesso nodo sullo stesso dispositivo-questo dovrebbe rilevare i punti di montaggio per tutte le varianti Unix e POSIX. Non è in grado di rilevare in modo affidabile i monti bind sullo stesso filesystem. Su Windows, una radice di lettera di unità e una quota UNC sono sempre punti di montaggio, e per qualsiasi altro percorso GetVolumePathName
viene chiamatoper vedere se è diverso dal percorso di input.
Nuovo nella versione 3.4: supporto per il rilevamento di punti di montaggio non root su Windows.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
join
(percorso, * percorsi)¶
Unire uno o più componenti del percorso in modo intelligente. Il valore restituito è theconcatenation di path e qualsiasi membro di * paths con exactly onedirectory separator (os.sep
) che segue ogni parte non vuota tranne thelast, il che significa che il risultato finirà solo in un separatore se lastpart è vuoto. Se un componente è un percorso assoluto, tutti i precedenti componenti vengono eliminati e l’unione continua dal pathcomponent assoluto.
In Windows, la lettera di unità non viene ripristinata quando viene rilevato un componente percorso assoluto(ad esempio, r'\foo'
). Se un componente contiene un driveletter, tutti i componenti precedenti vengono gettati via e la lettera di unità isreset. Si noti che poiché esiste una directory corrente per ogni unità,os.path.join("c:", "foo")
rappresenta un percorso relativo alla directory corrente sull’unità C:
(c:foo
), non c:\foo
.
Modificato nella versione 3.6: accetta un oggetto simile al percorso per il percorso e i percorsi.
os.path.
normcase
(percorso)¶
Normalizza il caso di un percorso. Su Windows, converti tutti i caratteri nelnome in minuscolo e converti anche le barre in avanti in barre all’indietro.Su altri sistemi operativi, restituire il percorso invariato.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
normpath
(percorso)¶
Normalizza un percorso comprimendo i separatori ridondanti e le referenze di livello superiore in modo che A//B
, A/B/
, A/./B
e A/foo/../B
allbecome A/B
. Questa manipolazione di stringhe può modificare il significato di un percorso che contiene collegamenti simbolici. Su Windows, converte le barre in avanti tobackward slashes. Per normalizzare caso, utilizzare normcase()
.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
realpath
(percorso)¶
Restituisce il percorso canonico del nome file specificato, eliminando eventuali collegamenti simbolici incontrati nel percorso (se sono supportati dal sistema operativo).
Nota
Quando si verificano cicli di collegamento simbolico, il percorso restituito sarà un membro del ciclo, ma non viene fornita alcuna garanzia su quale membro sarà.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
Cambiato nella versione 3.8: collegamenti simbolici e giunzioni sono ora risolti su Windows.
os.path.
relpath
(percorso, start = os.curdir)¶
Restituisce un percorso di file relativo al percorso dalla directory corrente o da una directory di avvio opzionale. Questo è un calcolo del percorso: non è possibile accedere a thefilesystem per confermare l’esistenza o la natura di path orstart.
avvia il valore predefinito su os.curdir
.
Disponibilità: Unix, Windows.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
samefile
(path1, path2)¶
Restituisce True
se entrambi gli argomenti del percorso si riferiscono allo stesso file o directory.Questo è determinato dal numero di dispositivo e dal numero di i-node e genera anexception se una chiamata os.stat()
su entrambi i percorsi non riesce.
Disponibilità: Unix, Windows.
Cambiato nella versione 3.2: Aggiunto il supporto di Windows.
Cambiato nella versione 3.4: Windows ora utilizza la stessa implementazione di tutte le altre piattaforme.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
sameopenfile
(fp1, fp2)¶
Restituisce True
se i descrittori di file fp1 e fp2 si riferiscono allo stesso file.
Disponibilità: Unix, Windows.
Cambiato nella versione 3.2: Aggiunto il supporto di Windows.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
samestat
(stat1, stat2)¶
Restituisce True
se le tuple stat1 e stat2 si riferiscono allo stesso file.Queste strutture potrebbero essere state restituite da os.fstat()
,os.lstat()
o os.stat()
. Questa funzione implementa il confronto sottostante utilizzato da samefile()
e sameopenfile()
.
Disponibilità: Unix, Windows.
Cambiato nella versione 3.4: Aggiunto il supporto di Windows.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
split
(percorso)¶
Dividi il percorso percorso in una coppia, (head, tail)
dove tail è l’ultimo componente del percorso e head è tutto ciò che porta a questo. La parte di coda non conterrà mai una barra; se il percorso termina in una barra, la coda sarà vuota. Se non c’è alcuna barra nel percorso, la testa sarà vuota. Ifpath è vuoto, sia la testa che la coda sono vuote. Le barre finali vengono estratte dalla testa a meno che non sia la radice (solo una o più barre). In tutti i casi, join(head, tail)
restituisce un percorso nella stessa posizione di path (ma le stringhe potrebbero differire). Vedere anche le funzioni dirname()
ebasename()
.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
splitdrive
(percorso)¶
Dividi il percorso percorso in una coppia (drive, tail)
dove l’unità è oun punto di montaggio o la stringa vuota. Nei sistemi che non utilizzano drivespecifications, drive sarà sempre la stringa vuota. In tutti i casi, drive+ tail
sarà uguale a path.
In Windows, divide un percorso in unità / UNC sharepoint e percorso relativo.
Se il percorso contiene una lettera di unità, l’unità conterrà tutto fino ai due punti inclusi.ad esempio splitdrive("c:/dir")
restituisce ("c:", "/dir")
Se il percorso contiene un percorso UNC, drive conterrà il nome host e la condivisione, fino a ma non incluso il quarto separatore.ad esempio splitdrive("//host/computer/dir")
restituisce ("//host/computer", "/dir")
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
splitext
(percorso)¶
Dividere il percorso percorso in una coppia (root, ext)
tale che root + ext ==path
, ed ext è vuoto o inizia con un punto e contiene al massimo unperiodo. I periodi iniziali sul nome base vengono ignorati; splitext('.cshrc')
restituisce ('.cshrc', '')
.
Modificato nella versione 3.6: accetta un oggetto simile al percorso.
os.path.
supports_unicode_filenames