📜  获取当前执行文件的路径 python (1)

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

获取当前执行文件的路径 Python

在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脚本当前工作目录的限制。所以推荐使用第二种方法。