Python 中的相对路径

Muhammad Maisam Abbas 2023年1月30日 2021年4月29日
  1. Python 中的文件路径
  2. 绝对路径
  3. 相对路径
Python 中的相对路径

在本教程中,我们将讨论 Python 中的相对路径。

Python 中的文件路径

文件路径指定文件在计算机中的位置。例如,C:\PythonProjects\Tutorials\Paths 是 Windows 计算机中文件 paths.py 的路径。在这里,C:\是根目录,而 PythonProjectsTutorialsPaths 是子目录。paths.py 是在根目录 C:\内的 Paths 目录内的 Tutorials 目录内的 PythonProjects 目录内的一个 python 脚本。Python 中有两种类型的文件路径,即绝对路径和相对路径。

Windows、Mac 和 Linux 之间的区别

在 Windows 计算机中,\用作目录名称之间的分隔符,而在 Linux 和 Mac 计算机中,/用作分隔符。例如,

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

在 Windows 中,有两个反斜杠,因为每个反斜杠都需要使用另一个反斜杠进行转义。这可以通过使用 os.path.join() 方法进行管理。此方法根据操作系统处理分隔符。例如,

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

输出:

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

本教程将包含\作为分隔符,以在 Windows 中给出示例。我们将使用以下文件层次结构,并将 C:\PythonProjects\Tutorials\Paths 设置为当前工作目录。

文件系统示例

当前工作目录

当前的工作目录或简称为 cwd 是从中执行程序的目录。你可以通过 os.getcwd() 方法获取特定文件的当前工作目录。

import os
print(os.getcwd())

输出:

C:\PythonProjects\Tutorials\Paths

当前的工作目录也可以在运行时使用 os.chdir() 方法进行更改。

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

输出:

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

绝对路径

文件的绝对路径是从根目录到该特定文件的完整路径。例如,C:\PythonProjects\Tutorials\Paths\paths.pypaths.py 文件的绝对路径。

我们可以获取当前文件的绝对路径,如下所示。

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

输出:

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

使用 Python 中的绝对路径导航到 Strings 目录

使用 Python 中的绝对路径导航到文件夹非常容易。唯一令人头疼的是,你必须从根目录中知道所有目录的确切名称。

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

相对路径

绝对路径是有用的,但很快就会变得复杂。因此,为了使这种复杂性最小化,使用了相对路径。相对路径是指某个文件相对于当前工作目录的路径。

例如,如果当前工作目录为 C:\PythonProjects\Tutorials,则 path.py 文件的相对路径将为\Paths\paths.py,这比绝对路径 C:\PythonProjects\Tutorials\Paths\paths.py 更短,更容易使用。

文件的绝对路径在任何地方都相同,但是相对路径根据当前工作目录而变化。在下面的编码示例中说明了这种现象。

使用 Python 中的相对路径导航到 Strings 目录

如果需要访问 Strings 文件夹中的文件,则必须使用完整的绝对路径 C:\PythonProjects\Tutorials\Strings\string.py,也可以按照以下代码中的说明进行操作。

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)

输出:

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

相关文章 - Python Path