Python 获取当前文件的绝对路径

Python 获取当前文件的绝对路径

Python 获取当前文件的绝对路径

在编写 Python 程序时,有时候需要获取当前文件的绝对路径,以便进行文件操作或者其他需要路径信息的操作。本文将介绍一些方法,帮助你快速获取当前文件的绝对路径。

1. 使用 os 模块

Python 提供了 os 模块,其中有一个函数 os.path.abspath() 可以获取文件的绝对路径。

import os

abs_path = os.path.abspath(__file__)
print(abs_path)
Python

这段代码中,__file__ 是一个内置变量,表示当前模块(也就是这个代码所在的文件)的文件名。os.path.abspath() 函数可以将相对路径转换为绝对路径。打印的结果就是当前文件的绝对路径。

结果输出示例:

/Users/username/Desktop/my_script.py

需要注意的是,在使用 os.path.abspath() 函数时,传入的参数应该是一个文件名或者一个相对路径。如果传入的是一个文件夹名,函数将返回该文件夹的绝对路径,而不是当前文件的绝对路径。

2. 使用 pathlib 模块

pathlib 模块是 Python 3.4 以后新增的模块,提供了更加方便的文件路径操作方法。

from pathlib import Path

abs_path = Path(__file__).resolve()
print(abs_path)
Python

上面的代码使用了 Path 类和 resolve() 方法。Path(__file__) 创建了一个 Path 对象,并将 __file__ 作为参数传入,表示当前文件的路径。然后使用 resolve() 方法获取绝对路径。

Path 类还提供了很多其他有用的方法,比如 parents 方法可以获取文件的父目录路径,name 方法可以获取文件名等。

结果输出示例:

/Users/username/Desktop/my_script.py

需要注意的是,pathlib 模块不仅可以用于文件路径的操作,还可以用于文件夹路径的操作。

3. 使用 inspect 模块

inspect 模块是 Python 内置模块之一,提供了许多与解释器功能相关的函数。其中的 getfile() 函数可以返回对象所在的文件名。结合 os.path.abspath() 函数,可以获得当前文件的绝对路径。

import inspect
import os

abs_path = os.path.abspath(inspect.getfile(inspect.currentframe()))
print(abs_path)
Python

上面的代码使用了 inspect.getfile() 函数获取当前文件的文件名,然后再使用 os.path.abspath() 函数获取绝对路径。

结果输出示例:

/Users/username/Desktop/my_script.py

需要注意的是,inspect 模块还提供了其他一些函数,比如 getsourcefile() 函数可以获取对象所在的源代码文件名。

4. 使用 sys 模块

sys 模块是 Python 的内置模块之一,其中的 argv 属性是一个列表,包含了当前执行的命令行参数。其中第一个元素是以脚本形式运行的 Python 文件的路径。可以利用这个特性来获取当前文件的绝对路径。

import sys

abs_path = sys.argv[0]
print(abs_path)
Python

上面的代码直接获取了 sys.argv 列表的第一个元素,即当前执行的 Python 脚本的路径。

结果输出示例:

/Users/username/Desktop/my_script.py

需要注意的是,sys.argv 列表还可以包含其他命令行参数,如果需要获取当前文件的绝对路径,无论有没有传入其他命令行参数,都可以通过第一个元素获取。

以上就是通过不同的方法获取当前文件的绝对路径的示例代码和解释。根据具体的情况,选择合适的方法来获取绝对路径,可以方便地进行文件操作或其他路径相关的操作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册