📜  python 获取脚本的位置 - Python (1)

📅  最后修改于: 2023-12-03 15:04:18.511000             🧑  作者: Mango

Python 获取脚本的位置

在开发Python项目时,经常需要获取当前执行的脚本文件的路径,以便做其他操作,例如读取配置文件或者读写数据等操作。本文将介绍几种获取脚本路径的方法。

方法一:__file__属性

Python解释器在执行脚本文件时,会自动为每个脚本文件添加一个特殊变量__file__,该变量保存了当前脚本文件的绝对路径。通过__file__变量,我们可以很方便地获取当前脚本的路径。

import os

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

输出:

/Users/xxx/Projects/example

其中os.path模块包含了很多用于处理路径的函数,其中abspath函数用于将相对路径转化为绝对路径,dirname函数用于获取文件所在的目录路径。

方法二:sys.argv[0]属性

除了__file__属性,我们还可以通过sys.argv变量来获取当前脚本的路径。sys.argv是一个包含命令行参数的列表,可以通过sys.argv[0]获取当前脚本的名称,再通过os.path.abspath函数获取绝对路径。

import os
import sys

path = os.path.abspath(os.path.dirname(sys.argv[0]))
print(path)

输出:

/Users/xxx/Projects/example
方法三:inspect.getfile()函数

Python标准库的inspect模块提供了许多有用的函数,其中inspect.getfile()函数可以获取任意对象所在的文件路径,包括当前脚本文件。

import inspect

path = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
print(path)

输出:

/Users/xxx/Projects/example

inspect.currentframe()函数返回当前的堆栈帧对象,其中包含了当前函数所在的信息。getfile()函数可以获取任意对象所在的文件路径,需要传入一个堆栈帧对象作为参数。

以上就是获取Python脚本路径的三种方法,我们可以根据具体需求选择不同的方法。