您的位置:

sys.path.append相对路径详解

一、sys.path.append基础

sys.path是Python中的一个列表,包含Python解释器寻找模块所需的路径。sys.path默认包括已安装库、Python的内置库以及运行当前脚本的目录。如果需要使用自定义模块,常常需要将其它目录加入sys.path。而sys.path.append()就是用于将新目录添加到sys.path中的函数。


import sys 
sys.path.append('new_dir')

通过这种方式,我们将 'new_dir' 目录添加到sys.path中,此时Python解释器就会先在 'new_dir' 目录寻找模块。

二、相对路径的使用

在使用sys.path.append()函数时,我们可以使用相对路径或绝对路径。相对路径指的是相对于当前工作目录的路径,而绝对路径则是从根目录开始的完整路径。

举个例子,比如我们在 'my_project' 目录中编写了一个脚本 test.py。假设 'my_project' 目录下还有一个子目录 'utils' ,里面有一个辅助模块 'helper.py' 我们需要在test.py中引用helper.py模块。

如果使用绝对路径,就需要写出完整的路径,如下:


import sys
sys.path.append('/home/user/my_project/utils')
import helper

而如果使用相对路径,则可以更加简洁:


import sys
sys.path.append('./utils')
import helper

其中 './' 表示当前目录,这样Python解释器就会在当前目录下寻找 'utils' 目录。

三、os模块的使用

在实际使用中,我们经常需要使用系统相关的操作,比如获取当前工作目录、获取绝对路径等。Python中可以通过os模块来实现这些功能。

os.getcwd()函数可以用于获取当前工作目录:


import os
print(os.getcwd())

os.path.abspath()函数可以将相对路径转化为绝对路径:


import os
print(os.path.abspath('./utils'))

此时输出的就是 'my_project/utils' 的绝对路径了。

四、总结

sys.path.append()函数常用于将自定义模块加入Python解释器的搜索路径。在使用该函数时,我们可以使用相对路径或绝对路径,配合os模块可以实现更加灵活的路径操作。