📅  最后修改于: 2023-12-03 14:57:14.738000             🧑  作者: Mango
在Python中,获取当前执行文件的路径是一个常见需求。这可以使用os
模块和sys
模块来完成。
os
模块os
模块提供了 os.path
子模块,它包括许多方法来处理文件路径。其中有一个函数叫 abspath()
可以返回绝对路径。
import os
# 获取当前脚本的绝对路径
current_path = os.path.abspath(__file__)
print(current_path)
输出的结果类似于:
/Users/youruser/yourproject/yourcode.py
缺点:但是,这种方法受限于你的Python脚本的当前工作目录。即,如果你使用命令行来执行你的Python脚本,它将返回命令行中的路径。因此,如果使用 os.path.abspath(__file__)
,你需要区分 __file__
的位置与当前工作目录的位置,才能得到正确的文件路径。
sys
模块sys
模块包含了许多有用的函数和属性,用于与Python解释器交互。sys.argv[0]
可以获取正在执行的脚本文件名,而 os.path.dirname()
函数可用于返回该脚本文件的目录名。
import sys
import os
# 获取正在执行的 Python 脚本的目录
current_path = os.path.dirname(os.path.abspath(sys.argv[0]))
print(current_path)
输出的结果类似于:
/Users/youruser/yourproject
优点:这种方法不受你的Python脚本所在的目录的影响。无论你从哪里运行它,都可以得到正确的结果。
有两种方法可以获取当前执行文件的路径:使用 os.path.abspath(__file__)
或 os.path.dirname(os.path.abspath(sys.argv[0]))
。第一种方法可能会受到你的Python脚本当前工作目录的限制。所以推荐使用第二种方法。