Il modulo OS fornisce vari modi per ottenere la directory principale. Alcuni dei modi:
- Usando os.path.abspath ()
- Usando os . path.dirname()
- Utilizzo di os.path.relpath() e os.path.dirname ()
Usando os.path. abspath()
os.path.abspath()
può essere utilizzato per ottenere la directory principale. Questo metodo viene utilizzato per ottenere la versione normalizzata del percorso. Anche questa funzione ha bisogno di aiuto os.path.join ( ()
e os.pardir ()
.os.path.join ( ()
in Python os.path.join ( ()
combina uno o più componenti di percorso. Questo metodo concatena vari componenti di percorso con esattamente uno (' / ')
separatore di directory dopo ogni parte non vuota eccetto l`ultimo componente del percorso. Se l`ultimo componente del percorso da unire è vuoto, il ( ' / ')
il separatore di directory è posizionato alla fine.
Sintassi: os.path.abspath (percorso)
Parametri:
percorso: un oggetto simile a un percorso che rappresenta un percorso del file system.Restituisci Digita: Restituisce una stringa che è una versione normalizzata del percorso.
Esempio:
# Programma Python per ottenere il genitore
# directory
import
os
# recupera la directory corrente
percorso
=
os.getcwd ()
print
(
"Directory corrente"
, cwd)
# stampa la directory principale
Risultato:
Utilizzando os.path.dirname ()
os.path.dirname ()
in Python è usato per ottenere il nome di una directory in un dato percorso.
Sintassi: os.path.dirname< /a>(percorso)
Parametro:
percorso: Un oggetto simile a un percorso che rappresenta un percorso del file system.Tipo restituito: questo metodo restituisce un valore stringa che rappresenta il nome della directory dal percorso specificato.
Esempio:
# Programma Python per ottenere il genitore
# directory
import
os
# recupera la directory corrente
percorso
, percorso)
print
( )
# directory principale
genitore
=
os. path.dirname (percorso)
print
(
"Directory principale"
, genitore)
Esci :
Utilizzo di os.path.relpath () e os.path.dirname ()
Negli esempi precedenti, il recupero della directory padre era limitato a un livello, cioè , potremmo solo portare il livello padre della directory corrente a un solo livello ... Supponiamo di voler trovare il livello padre per la directory padre, quindi il codice sopra avrà esito negativo. Questo può essere ottenuto condividendo os.path.dirname ()
.
os.path.relpath ()
in Python è usato per ottieni il percorso relativo di un file in un determinato percorso dalla directory di lavoro corrente o dalla directory specificata.
Sintassi: os.path.relpath (percorso, inizio = os.curdir)
Parametro:
percorso: Un oggetto simile a un percorso che rappresenta il percorso del file system.
start (opzionale): Un oggetto simile a un percorso che rappresenta il percorso del file system.
Il percorso relativo per un determinato percorso verrà calcolato rispetto alla directory indicata da start. Il valore predefinito di questo parametro è os. curdir che è una costante st anello utilizzato dal sistema operativo per fare riferimento alla directory corrente.Un oggetto simile a un percorso è un oggetto stringa o byte che rappresenta un percorso.
Tipo di ritorno: Questo metodo restituisce un valore stringa che rappresenta il percorso del file relativo al percorso specificato dalla directory iniziale.0222
Esempio:
Per ottenere la directory principale in base ai livelli specificati dall`utente, creeremo una funzione getParent()
che accetterà un percorso
e livelli
come argomenti. All`interno della funzione, il ciclo for ripeterà i numeri temporali di livello + 1
e all`interno del ciclo for
os.path.dirname ()
verrà chiamato. Chiamare questa funzione all`interno di un ciclo for ci darà un punto di partenza da cui os.path.relpath() fornirà il percorso relativo al file.
Di seguito è riportata l`implementazione.
# getter Python
# directory principale
import
os.path
# funzione per ottenere il genitore
def
getParent (percorso, livelli
=
# Utilizzo del ciclo per ottenere
# il punto di partenza richiesto per
# os.path.relpath ()
for
i
in
range
(livelli
+
1
):
# Punto di partenza
comune
=
os.path.dirname (comune)
# Directory principale prima del
# livello
return
os.path.relpath (percorso, comune)
percorso
print
(getParent (percorso,
2
))
Esci :