什么时模块
Python中的模块其实就是XXX.py 文件
模块分类
Python内置模块(标准库)
自定义模块
第三方模块
使用方法
import 模块名
form 模块名 import 方法名
说明:实际就是运行了一遍XX.py 文件
导入模块也可以取别名
如: import time as t
import time as t print(t.time())
定位模块
- 当前目录
- 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
- 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/
- 模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
自定义模块
我们自己写的XX.py 文件就是一个模块,在项目中可以引用这个模块调用里面的方法。
__all__[]关键字
__all__ = ["函数名","类名","方法名"]
没有all关键字 所有方法都可以访问到
使用all关键字
总结
- 如果一个文件中有__all__变量,那么也就意味着不在这个变量中的元素,不会被from xxx import *时导入
模块包
模块包就是为了防止模块重名
两个模块在同一个文件夹里 并且有个__init__.py 文件
__init__.py 文件内容
# -*- coding: utf-8 -*- # 声明字符编码 # coding:utf-8 # 在外部文件中 import all中的模块 __all__ = ["receMsage","myModelDemo"] #"myModelDemoOne" import sys sys.path.append('/home/ubuntu/code/Python核心编程') print(sys.path) # 外部文件中访问模块中的方法 from.import receMsage
使用:
总结:
- 包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为
__init__.py
文件,那么这个文件夹就称之为包
- 有效避免模块名称冲突问题,让应用组织结构更加清晰
标准库
import os import sys import random import time import datetime import json import pickle import shelve import xml.etree.ElementTree as et import xml import configparser import hashlib import logging import re
笔记
def time_test(): print('\r\n============time时间模块测试============\r\n') """ 1:时间戳:time.time() 1970 1 1 0点 秒数 2:结构化时间: time.localtime() 和 time.gmtime() 返回的是时间对象(tm_year,tm_mon,tm_wday) 3:字符串时间 """ print("时间戳:%s" % time.time()) t1 = time.localtime() # print(dir(t1)) print('返回时间对象:%s 年 %s 月 %s 日' % (t1.tm_year, t1.tm_mon, t1.tm_mday)) # t2 = time.gmtime() # print(dir(t2)) # 时间戳转为时间对象(结构化时间) t3 = time.localtime() print(t3) # 将结构化时间转为时间戳 t4 = time.mktime(t3) print(t4) # 将结构化时间转字符串时间 t5 = time.strftime("%Y-%m-%d %X", t3) print(t5) t8 = time.asctime(t3) print(t8) # 将字符串时间转为结构化时间 t6 = time.strptime(t5, '%Y-%m-%d %X') print(t6) # 将时间戳转为特定的字符串时间 t7 = time.ctime(t4) print(t7) # 睡眠多少秒才继续执行 # time.sleep(2) def random_test(): print('\r\n============random模块测试============\r\n') print(random.random()) # 0-1 返回float类型 print(random.randint(1, 10)) # 1-10 整形 print(random.randrange(1, 10)) print(random.choice([1, 'a', 3, 'w', 5])) # 随机返回列表中的数据 print(random.sample(['b', 'z', 1, 3, 'he', 4, '我'], 4)) # 随机返回集合中的内容4个 # 验证码 def v_code(n): result = "" for i in range(n): # 随机数字 num = random.randint(0, 9) # 随机字母 f = chr(random.randint(65, 122)) s = str(random.choice([num, f])) result += s return result # 调用 print("随机验证码:%s" % (v_code(5))) def os_test(): print('\r\n============OS模块测试============\r\n') # 获取当前文件路径 print(os.getcwd()) # 创建文件夹 # os.makedirs("makdir") # 删除文件夹 # os.removedirs('makdir') # 获取当前文件同级的所有文件 print(os.listdir()) # 获取文件信息 print(os.stat("11-lnh-python模块.py")) print(os.name) # 获取绝对路径 print(os.path.abspath("makdir")) a = "User/Administrator" c = "python/基础" print(os.path.join(a, c)) def sys_test(): print('\r\n============sys模块测试============\r\n') """ sys.argv # 执行参数List ,第一个元素是程序本身路径 sys.exit(n) # 退