在 Python 中获取当前文件的路径

Manav Narula 2023年1月30日
  1. 使用 pathlib 模块获取文件路径和当前工作目录的方法
  2. 使用 os 模块获取文件路径和当前工作目录
在 Python 中获取当前文件的路径

在 Python 中,我们可以处理许多文件和模块,并不断与文件系统交互。要导入或导出文件,我们需要知道这些文件的正确路径和目录,否则就会出现错误。知道当前正在运行的 Python 脚本的路径或其他一些文件的路径也是必不可少的。

当前的工作目录就是我们当前正在工作的 Python 的目录。

本教程将介绍如何在 Python 中获取当前文件和当前工作目录的完整路径和目录。

使用 pathlib 模块获取文件路径和当前工作目录的方法

pathlib 库适用于 Python 3.x 及以上版本,它包含了处理文件路径相关问题的类、方法。

在下面的代码中,我们将使用 pathlib 模块提供的函数提取一个 Python 脚本的路径。

import pathlib

print(pathlib.Path(__file__).parent.absolute())

输出:

C:\Sample\Python

absolute() 方法返回文件的完整路径,parent() 函数从这个路径中检索文件的目录。

为了得到当前的工作目录,我们将上述函数中的文件名去掉。下面的代码展示了如何操作。

import pathlib

print(pathlib.Path().absolute())

输出:

C:\Sample\Python

使用 os 模块获取文件路径和当前工作目录

os 库是用来与操作系统交互的,它有函数可以检索文件的完整路径。这种方法在 Python 2.x 中也可以使用。

abspath() 函数可以得到所需文件的路径,dirname() 函数从完整路径中得到目录。

例如:

import os

print(os.path.dirname(os.path.abspath(__file__)))

输出:

C:\Sample\Python

我们不能直接使用 dirname() 函数来获取文件的目录,因为它返回的是一个空字符串。

我们也可以使用 realpath() 函数来替代 abspath() 函数。如果路径中存在符号链接,它就会将其删除。

import os

print(os.path.dirname(os.path.realpath(__file__)))

输出:

C:\Sample\Python

为了得到当前的工作目录,我们可以使用 getcwd() 函数来返回当前的目录路径。我们可以将这个路径传递给 dirname() 函数来获取目录。

例如:

import os

print(os.path.abspath(os.getcwd()))

输出:

C:\Sample\Python
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python Path