Ruta relativa en Python
En este tutorial, discutiremos la ruta relativa en Python.
Ruta del archivo en Python
Una ruta de archivo especifica la ubicación de un archivo en la computadora. Por ejemplo, C:\PythonProjects\Tutorials\Paths
es la ruta de un archivo paths.py
en mi máquina con Windows. Aquí, C:\
es el directorio raíz y PythonProjects
, Tutorials
y Paths
son subdirectorios. paths.py
es un script de Python dentro del directorio Paths
dentro del directorio Tutorials
dentro del directorio PythonProjects
dentro del directorio raíz C:\
. Hay dos tipos de rutas de archivo en Python, es decir, rutas absolutas y relativas.
Diferencia entre Windows, Mac y Linux
En máquinas con Windows, \
se utiliza como separador entre los nombres de directorio, mientras que, tanto en máquinas Linux como Mac, /
se utiliza como separador. Por ejemplo,
#file path in Windows
rootdirectory\\subdirectory\\subsubdirectory\\filename.extension
#file path in Mac and Linux
rootdirectory/subdirectory/subsubdirectory/filename.extension
En Windows, hay dos barras invertidas porque cada barra invertida debe escaparse con otra barra invertida. Esto se puede gestionar mediante el método os.path.join()
. Este método maneja los separadores según el sistema operativo. Por ejemplo,
import os
pathname = os.path.join("root", "directory1", "directory2")
print(pathname)
Producción :
#On Windows
root\directory1\directory2
#On Mac and Linux
root/directory1/directory2
Este tutorial contendría \
como separador para dar los ejemplos en Windows. Usaremos la siguiente jerarquía de archivos y configuraremos C:\PythonProjects\Tutorials\Paths
como el directorio de trabajo actual.
Directorio de trabajo actual
El directorio de trabajo actual o cwd
en resumen es el directorio desde el que se está ejecutando el programa. Puede obtener el directorio de trabajo actual del archivo en particular mediante el método os.getcwd()
.
import os
print(os.getcwd())
Producción :
C:\PythonProjects\Tutorials\Paths
El directorio de trabajo actual también se puede cambiar en tiempo de ejecución usando el método os.chdir()
.
import os
print("Old cwd = " + os.getcwd())
os.chdir("C:\\PythonProjects\\Tutorials")
print("New cwd = " + os.getcwd())
Producción :
Old cwd = C:\PythonProjects\Tutorials\Paths
New cwd = C:\PythonProjects\Tutorials
Camino absoluto
Una ruta absoluta de un archivo es la ruta completa desde el directorio raíz hasta ese archivo en particular. Por ejemplo, C:\PythonProjects\Tutorials\Paths\paths.py
es la ruta absoluta del archivo paths.py
.
Podemos obtener la ruta absoluta del archivo actual como se muestra a continuación.
import os
absolutepath = os.path.abspath(__file__)
print(absolutepath)
Producción :
C:\PythonProjects\Tutorials\Paths\paths.py
Navegue al directorio Strings
usando ruta absoluta en Python
Navegar a una carpeta usando la ruta absoluta en Python es bastante fácil. El único dolor de cabeza es que debe conocer los nombres exactos de todos los directorios del directorio raíz.
import os
print("Old cwd = " + os.getcwd())
os.chdir("C:\\PythonProjects\\Tutorials\\Strings")
print("New cwd = " + os.getcwd())
Camino relativo
La ruta absoluta es útil, pero puede volverse compleja muy pronto. Entonces, para minimizar esta complejidad, se usa una ruta relativa. Ruta relativa significa la ruta de un determinado archivo en relación con el directorio de trabajo actual.
Por ejemplo, si el directorio de trabajo actual es C:\PythonProjects\Tutorials
, la ruta relativa del archivo path.py
sería \Paths\paths.py
, que es más corta y más fácil de usar que la ruta absoluta C:\PythonProjects\Tutorials\Paths\paths.py
.
La ruta absoluta de un archivo sigue siendo la misma en todas partes, pero la ruta relativa cambia según el directorio de trabajo actual. Este fenómeno se demuestra en el siguiente ejemplo de codificación.
Navegue al directorio Strings
usando la ruta relativa en Python
Si necesitamos acceder a archivos en la carpeta Strings
, tenemos que usar la ruta absoluta completa C:\PythonProjects\Tutorials\Strings\string.py
o podemos hacer lo que se menciona en el siguiente código.
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)
Producción :
C:\PythonProjects\Tutorials\Paths\paths.py
C:\PythonProjects\Tutorials\Paths
C:\PythonProjects\Tutorials
C:\PythonProjects\Tutorials\Strings
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