📅  最后修改于: 2023-12-03 15:04:18.511000             🧑  作者: Mango
在开发Python项目时,经常需要获取当前执行的脚本文件的路径,以便做其他操作,例如读取配置文件或者读写数据等操作。本文将介绍几种获取脚本路径的方法。
Python解释器在执行脚本文件时,会自动为每个脚本文件添加一个特殊变量__file__
,该变量保存了当前脚本文件的绝对路径。通过__file__
变量,我们可以很方便地获取当前脚本的路径。
import os
path = os.path.abspath(os.path.dirname(__file__))
print(path)
输出:
/Users/xxx/Projects/example
其中os.path
模块包含了很多用于处理路径的函数,其中abspath
函数用于将相对路径转化为绝对路径,dirname
函数用于获取文件所在的目录路径。
除了__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
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脚本路径的三种方法,我们可以根据具体需求选择不同的方法。