相对路径和绝对路径的概念python
绝对路径就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件。
相对路径就是以当前文件为基准进行一级级目录指向被引用的资源文件。 app
如下是经常使用的表示当前目录和当前目录的父级目录的标识符
../ 表示当前文件所在的目录的上一级目录
./ 表示当前文件所在的目录(能够省略)
/ 表示当前站点的根目录(域名映射的硬盘目录)
在Python中能够验证一下上述的标识方法:测试
测试的目录结构:
spa
三、 再了解一下Python中sys.path的使用.net
sys.path是python的搜索模块的路径集,是一个list,以下:rest
sys.path.append(‘你的模块的名称’)code
sys.path.insert(0,’模块的名称’)blog
添加相关的路径,但在退出python环境后本身添加的路径就会自动消失!
代码中的实现以下:ip
有一个文件夹/home/a, 里面有个模块叫b.py, 我怎么把他import到程序里?element
方法一: (属于刚开始分析的代码里第一种状况)
import sys;
sys.path.append(“/home/a/”)
import b
方法二:
在目录里面增长__init__.py文件,里面能够写import时执行的代码,固然也能够留空就能够.
import home.a.b
方法三:
from home.a.b import *
前提 home、a中都包括__init__.py 即:要导入的文件的当前目录和父目录都要有init.py文件
下面将具体介绍几种经常使用状况:
(1)主程序与模块程序在同一目录下:
以下面程序结构:
– src
|– mod1.py
|– test1.py
若在程序test1.py中导入模块mod1, 则直接使用import mod1
(2)主程序所在目录是模块所在目录的父(或祖辈)目录
以下面程序结构:
– src
|– mod1.py
|– mod2
| – mod2.py
– test1.py
若在程序test1.py中导入模块mod2, 须要在mod2文件夹中创建空文件__init__.py文件,而后使用 import mod2.mod2.
(3)主程序导入上层目录中模块或其余目录(平级)下的模块
以下面程序结构:
– src
|– mod1.py
|– mod2
|– mod2.py
|– sub
| – test2.py
– test1.py
若在程序test2.py中导入模块mod1.py和mod2.py。首先须要在mod2下创建__init__.py文件(同(2)),src下没必要创建该文件。而后调用方式以下:
下面程序执行方式均在程序文件所在目录下执行,如test2.py是在cd sub;以后执行python test2.py
而test1.py是在cd src;以后执行python test1.py; 不保证在src目录下执行python sub/test2.py成功。
(4)从(3)能够看出,导入模块关键是可以根据sys.path环境变量的值,找到具体模块的路径。这里仅介绍上面三种简单状况。