Percorso relativo in Python

Muhammad Maisam Abbas 10 ottobre 2023
  1. Percorso del file in Python
  2. Percorso assoluto
  3. Percorso relativo
Percorso relativo in Python

In questo tutorial, discuteremo il percorso relativo in Python.

Percorso del file in Python

Un percorso file specifica la posizione di un file nel computer. Ad esempio, C:\PythonProjects\Tutorials\Paths è il percorso di un file paths.py nella mia macchina Windows. Qui, C:\ è la directory principale, e PythonProjects, Tutorials e Paths sono sottodirectory. paths.py è uno script python all’interno della directory Paths all’interno della directory Tutorials all’interno della directory PythonProjects all’interno della directory root C:\. Esistono due tipi di percorsi di file in Python, ovvero percorsi assoluti e relativi.

Differenza tra Windows, Mac e Linux

Nelle macchine Windows, \ è usato come separatore tra i nomi delle directory mentre, sia nelle macchine Linux che in quelle Mac, / è usato come separatore. Per esempio,

#file path in Windows
rootdirectory\\subdirectory\\subsubdirectory\\filename.extension
#file path in Mac and Linux
rootdirectory/subdirectory/subsubdirectory/filename.extension

In Windows, ci sono due barre rovesciate perché ogni barra rovesciata deve essere sottoposta a escape utilizzando un’altra barra rovesciata. Questo può essere gestito usando il metodo os.path.join(). Questo metodo gestisce i separatori in base al sistema operativo. Per esempio,

import os

pathname = os.path.join("root", "directory1", "directory2")
print(pathname)

Produzione:

#On Windows
root\directory1\directory2
#On Mac and Linux
root/directory1/directory2

Questo tutorial conterrebbe \ come separatore per fornire gli esempi in Windows. Useremo la seguente gerarchia di file e imposteremo C:\PythonProjects\Tutorials\Paths come directory di lavoro corrente.

esempio di file system

Directory di lavoro corrente

La directory di lavoro corrente o cwd in breve è la directory da cui viene eseguito il programma. È possibile ottenere la directory di lavoro corrente di un particolare file con il metodo os.getcwd().

import os

print(os.getcwd())

Produzione:

C:\PythonProjects\Tutorials\Paths

La directory di lavoro corrente può anche essere modificata in fase di esecuzione utilizzando il metodo os.chdir().

import os

print("Old cwd = " + os.getcwd())
os.chdir("C:\\PythonProjects\\Tutorials")
print("New cwd = " + os.getcwd())

Produzione:

Old cwd = C:\PythonProjects\Tutorials\Paths
New cwd = C:\PythonProjects\Tutorials

Percorso assoluto

Un percorso assoluto di un file è il percorso completo dalla directory principale a quel particolare file. Ad esempio, C:\PythonProjects\Tutorials\Paths\paths.py è il percorso assoluto del file paths.py.

Possiamo ottenere il percorso assoluto del file corrente come mostrato di seguito.

import os

absolutepath = os.path.abspath(__file__)
print(absolutepath)

Produzione:

C:\PythonProjects\Tutorials\Paths\paths.py

Vai alla directory Strings utilizzando Absolute Path in Python

Navigare in una cartella utilizzando il percorso assoluto in Python è piuttosto semplice. L’unico problema è che devi conoscere i nomi esatti di tutte le directory dalla directory principale.

import os

print("Old cwd = " + os.getcwd())
os.chdir("C:\\PythonProjects\\Tutorials\\Strings")
print("New cwd = " + os.getcwd())

Percorso relativo

Il percorso assoluto è utile, ma può diventare complesso molto presto. Quindi, per ridurre al minimo questa complessità, viene utilizzato un percorso relativo. Percorso relativo indica il percorso di un determinato file relativo alla directory di lavoro corrente.

Ad esempio, se la directory di lavoro corrente è C:\PythonProjects\Tutorials, il percorso relativo del file path.py sarebbe \Paths\paths.py che è più breve e più facile da usare del percorso assoluto C:\PythonProjects\Tutorials\Paths\paths.py.

Il percorso assoluto di un file rimane lo stesso ovunque, ma il percorso relativo cambia a seconda della directory di lavoro corrente. Questo fenomeno è dimostrato nel seguente esempio di codifica.

Vai alla directory Strings utilizzando il percorso relativo in Python

Se abbiamo bisogno di accedere ai file nella cartella Strings, dobbiamo utilizzare il percorso assoluto completo C:\PythonProjects\Tutorials\Strings\string.py oppure possiamo fare come indicato nel codice seguente.

import os
import sys

absolutepath = os.path.abspath(__file__)
print(absolutepath)

fileDirectory = os.path.dirname(absolutepath)
print(fileDirectory)
# Path of parent directory
parentDirectory = os.path.dirname(fileDirectory)
print(parentDirectory)
# Navigate to Strings directory
newPath = os.path.join(parentDirectory, "Strings")
print(newPath)

Produzione:

C:\PythonProjects\Tutorials\Paths\paths.py
C:\PythonProjects\Tutorials\Paths
C:\PythonProjects\Tutorials
C:\PythonProjects\Tutorials\Strings
Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Articolo correlato - Python Path