比如有时import
的时候需要添加系统路径:
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/')
os.path.abspath(__file__):
返回当前 Python 脚本的绝对路径,__file__
代表当前脚本文件。
os.path.dirname():
从绝对路径中获取当前脚本所在的目录部分。
- ‘/’:在目录路径后面拼接一个斜杠(用于表示该目录,方便之后在路径后面加文件名)。
组合起来的意思就是,获取当前 Python 脚本文件所在目录的路径,并在该路径的末尾加上一个斜杠。 - 如果是’/…‘:这是在当前目录的路径后面手动拼接了 ‘/…’,代表文件系统中上一层目录的符号。所以,’/…’ 会指向当前脚本所在目录的父目录。
举个例子:
假设你的脚本路径为 /home/user/project/script.py
,那么 os.path.abspath(__file__)
会返回 /home/user/project/script.py
,而 os.path.dirname()
会返回 /home/user/project
,加上斜杠后就是 /home/user/project/
os.getcwd()
是 Python 中用来获取当前工作目录的方法。它返回的是当前 Python 进程所在的工作目录,而不是脚本文件所在的目录。
当前工作目录:是运行 Python 代码时所在的目录,而不是脚本本身的路径。
区别:
os.path.abspath(__file__)
和 os.path.dirname(__file__)
用来获取脚本文件的路径,是脚本本身所在的目录。
os.getcwd()
返回的是运行程序时的当前工作目录,这可以是你在终端中启动 Python 程序的位置。
举个例子:
假设你在 /home/user/project
目录下运行 Python 脚本,而你的脚本实际位于 /home/user/project/scripts/script.py
里:
os.getcwd()
会返回 /home/user/project
,因为这是你运行 Python 的位置。
os.path.abspath(__file__)
和 os.path.dirname(__file__)
会返回 /home/user/project/scripts
,因为这是脚本文件所在的目录。