📜  获取当前目录python(1)

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

获取当前目录python

在编写Python脚本时,我们难免会需要获取当前脚本所在的目录。这个需求在读取文件、导入第三方库等场景中尤为常见。

本文将介绍三种获取Python脚本所在目录的方法。

方法1: 使用os模块

使用Python内置的os模块,可以获取当前脚本所在目录的绝对路径。

import os

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

上述代码中,os.path.abspath(__file__)可以获取当前脚本的绝对路径,os.path.dirname可以获取该路径所在的目录名。

这种方法适用于Python脚本和模块文件。如果你在交互式环境中运行Python代码,上述方法将抛出异常。

方法2: 使用sys模块

使用Python内置的sys模块,可以获取Python解释器当前执行的主脚本文件的绝对路径。

import sys

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

上述代码中,sys.argv[0]可以获取当前执行的脚本的完整路径,os.path.abspath可以获取该脚本的绝对路径,os.path.dirname可以获取该路径所在的目录名。

这种方法适用于Python脚本和交互式环境。注意,如果你在交互式环境中使用上述代码获取目录,返回的可能是Python解释器的安装路径。

方法3: 使用inspect模块

使用Python内置的inspect模块,可以获取当前脚本所在目录的路径。

import inspect

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

上述代码中,inspect.getfile(inspect.currentframe())可以获取当前正在执行的代码所在的文件名,os.path.abspath可以获取该文件的绝对路径,os.path.dirname可以获取该路径所在的目录名。

这种方法适用于Python脚本和模块文件,但在交互式环境中运行时可能会抛出异常。

总结

上述三种方法均可以用于获取当前Python脚本所在目录。其中,使用os模块和sys模块需要分别从绝对路径和执行的脚本中获取目录,使用inspect模块则是直接从正在执行的代码中获取目录。在实际开发中,应根据具体场景选择适合的方法。

以上是本文的所有内容,希望对你有所帮助!