Caminho Relativo em Python

Muhammad Maisam Abbas 10 outubro 2023
  1. Caminho do arquivo em Python
  2. Caminho Absoluto
  3. Caminho relativo
Caminho Relativo em Python

Neste tutorial, discutiremos o caminho relativo em Python.

Caminho do arquivo em Python

Um caminho de arquivo especifica a localização de um arquivo no computador. Por exemplo, C:\PythonProjects\Tutorials\Paths é o caminho de um arquivo paths.py na minha máquina Windows. Aqui, C:\ é o diretório raiz e PythonProjects, Tutorials e Paths são subdiretórios. paths.py é um script python dentro do diretório Paths dentro do diretório Tutorials dentro do diretório PythonProjects dentro do diretório raiz C:\. Existem dois tipos de caminhos de arquivo em Python, ou seja, caminhos absolutos e relativos.

Diferença entre Windows, Mac e Linux

Em máquinas Windows, \ é usado como separador entre os nomes de diretório, enquanto em máquinas Linux e Mac, / é usado como separador. Por exemplo,

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

No Windows, existem duas barras invertidas porque cada barra invertida precisa ser escapada usando outra barra invertida. Isso pode ser gerenciado usando o método os.path.join(). Este método trata os separadores de acordo com o sistema operacional. Por exemplo,

import os

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

Resultado:

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

Este tutorial conteria \ como separador para dar exemplos no Windows. Usaremos a seguinte hierarquia de arquivos e definiremos C:\PythonProjects\Tutorials\Paths como o diretório de trabalho atual.

exemplo de sistema de arquivo

Diretório de Trabalho Atual

O diretório de trabalho atual ou abreviadamente cwd é o diretório a partir do qual o programa está sendo executado. Você pode obter o diretório de trabalho atual de um arquivo específico pelo método os.getcwd().

import os

print(os.getcwd())

Resultado:

C:\PythonProjects\Tutorials\Paths

O diretório de trabalho atual também pode ser alterado em tempo de execução usando o método os.chdir().

import os

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

Resultado:

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

Caminho Absoluto

Um caminho absoluto de um arquivo é o caminho completo do diretório raiz para aquele arquivo específico. Por exemplo, C:\PythonProjects\Tutorials\Paths\paths.py é o caminho absoluto do arquivo paths.py.

Podemos obter o caminho absoluto do arquivo atual conforme mostrado abaixo.

import os

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

Resultado:

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

Navegar até uma pasta usando o caminho absoluto em Python é muito fácil. A única dor de cabeça é que você precisa saber os nomes exatos de todos os diretórios do diretório raiz.

import os

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

Caminho relativo

O caminho absoluto é útil, mas pode se tornar complexo muito em breve. Então, para minimizar essa complexidade, um caminho relativo é usado. Caminho relativo significa o caminho de um determinado arquivo em relação ao diretório de trabalho atual.

Por exemplo, se o diretório de trabalho atual for C:\PythonProjects\Tutorials então, o caminho relativo do arquivo path.py seria \Paths\paths.py que é mais curto e mais fácil de usar do que o caminho absoluto C:\PythonProjects\Tutorials\Paths\paths.py.

O caminho absoluto de um arquivo permanece o mesmo em todos os lugares, mas o caminho relativo muda dependendo do diretório de trabalho atual. Este fenômeno é demonstrado no seguinte exemplo de codificação.

Se precisarmos acessar arquivos na pasta Strings, temos que usar o caminho absoluto completo C:\PythonProjects\Tutorials\Strings\string.py ou podemos fazer conforme mencionado no código a seguir.

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)

Resultado:

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

Artigo relacionado - Python Path