📜  python如何获取脚本目录-Python(1)

📅  最后修改于: 2023-12-03 14:46:43.495000             🧑  作者: Mango

Python 如何获取脚本目录

在编写 Python 脚本时,有时需要获取当前脚本所在的目录。本文将介绍几种获取 Python 脚本目录的方法。

方法一:使用 os 模块中的 os.path.dirname() 方法

os.path.dirname() 方法可以返回指定路径的目录名。我们可以使用 sys 模块中的 sys.argv[0] 获取当前脚本的路径,再使用 os.path.dirname() 方法获取其所在的目录。

import os
import sys

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

上述代码中,os.path.realpath() 方法返回指定路径的真实路径,os.path.dirname() 方法返回其所在的目录。使用 sys.argv[0] 获取当前脚本的路径。

输出结果:

/home/user/Documents/Python_Script
方法二:使用 pathlib 模块

pathlib 模块是 Python 3.4 中新添加的模块,是对 os.path 模块的一种面向对象的封装。使用 pathlib 模块可以非常方便地获取脚本目录。

from pathlib import Path

current_path = Path(__file__).resolve().parent
print(current_path)

上述代码中,Path(file) 创建一个 Path 对象,file 是一个内置变量,表示当前脚本的路径。使用 resolve() 方法获取其真实路径,再使用 parent 属性获取其所在的目录。

输出结果:

/home/user/Documents/Python_Script
方法三:使用 inspect 模块

inspect 模块是 Python 用于解析对象信息的模块。使用 inspect 模块的getsourcefile() 方法可以返回模块文件的路径,这样我们就可以获取脚本目录。

import inspect
import os

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

上述代码中,使用 inspect.currentframe() 获取当前帧,使用 inspect.getfile() 获取模块文件路径。使用 os.path.abspath() 方法获取文件路径的绝对路径,再使用 os.path.dirname() 获取其所在的目录。

输出结果:

/home/user/Documents/Python_Script

以上是三种获取 Python 脚本目录的方法,具体使用哪种方法可根据需求来选择。