模块,即某个功能代码的集合
导入模块的基本方法
1 2 3 4
| import module from module.xx.xx import xx from module.xx.xx import xx as rename from module.xx.xx import *
|
导入模块其实就是告诉Python解释器去解释那个py文件
- 导入一个py文件,解释器解释该py文件
- 导入一个包,解释器解释该包下的
__init__.py
文件
导入模块的路径
1 2 3
| >>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages']
|
导入指定路径的模块
加入需要导入sys.path中不存在的路径下的模块,此时可以手动添加指定路径到sys.path中(仅当次生效)
1 2 3 4 5
| import sys import os project_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(project_path)
|
__file__
获取以当前路径为基准的文件相对路径
os.path.abspath(__file__)
获取当前文件的绝对路径
os.path.dirname(os.path.abspath(__file__))
获取当前文件所在文件夹的绝对路径(上级目录)
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
获取当前文件的上上级目录
模块中的特殊变量
1 2 3 4 5 6
| import maopao
print(maopao.__cached__)
------------ /Users/lvrui/PycharmProjects/untitled/6/c/__pycache__/maopao.cpython-35.pyc
|
1 2 3 4 5 6 7 8
| import maopao
print(__name__)
------------ maopao __main__
|