Python 中的相对路径
在本教程中,我们将讨论 Python 中的相对路径。
Python 中的文件路径
文件路径指定文件在计算机中的位置。例如,C:\PythonProjects\Tutorials\Paths
是 Windows 计算机中文件 paths.py
的路径。在这里,C:\
是根目录,而 PythonProjects
、Tutorials
和 Paths
是子目录。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.py
是 paths.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
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