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.
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
Navegue até o diretório Strings
usando o caminho absoluto em Python
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.
Navegue até o diretório Strings
usando o caminho relativo em Python
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
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