Python Learning, Day5

1. 模块简介

1.1. 定义

模块:用来从逻辑上组织python代码(变量、函数、类、逻辑:实现一个功能),本质就是.py结尾的python文件

包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件)

1.2. 导入方法

#导入方法:

#一般推荐用这种
import module_alex, module2_alex  #调用
module_alex.logger()

#不提倡(容易重复)(不过要是多次用一个函数,用这个方法会节省大量时间,单用import每次都得找)
from module_alex import * #相当于把代码全复制到这
from module_alex import m1, m2, m3
from module_alex import logger as logger_alex    #只导一个方法,起别名
logger()

1.3. import本质(路径搜索和搜索路径)

导入模块:

  • import:解释一遍,再封装起来,命名为module_alex:模块名(module_alex)加点调用
  • from import导入:拿到当前位置执行一遍,使用时直接用名字即可

导入的本质:

扫描二维码关注公众号,回复: 3764968 查看本文章
  • 导入模块的本质:把python文件解释一遍
  • 导入包的本质:解释包下面的__init__.py文件

导入某个包下的模块:

修改__init__.py文件,用相对导入

#导入不在本目录下的模块

import sys, os
#定义上上级目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)  #加到搜索的第一个位置
print(sys.path)

#备注如下:
#__file__:当前文件的相对路径
#os.path.abspath(__file__):当前文件的绝对路径
#os.path.dirname(path)  #去掉文件名,返回当前文件的目录 
#导入包里面的模块:

#包里面的__init__.py文件
from . import module   #module:包里面的一个模块

#执行文件(想调用Package包下的module模块中的Add函数)
import Package    #1. 执行__init__.py文件, 把module所有方法复制给module
Package.module.Add(2,3)
#导入其他目录下的包模块
import os, sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)

from Day6 import Package
Package.module.Add(2,3)

1.4. 导入优化

#虽然不建议用,但多次调用的话,这个方法很快
from module_alex import m1, m2, m3

1.5.模块的分类

模块分为三大类:

  • 1. 标注库(内置模块)
  • 2.  开源模块(第三方模块)
  • 3. 自定义模块

2. 常用内置模块学习

2.1 time & datetime模块

#时间模块最基础内容
import time

#获取当前时间
Data = time.time()  #时间戳方式:1970 unix诞生,记录从这一年开始的描述
Data = time.localtime()   #元组方式:返回本地时间 的struct time对象格式

#停止2秒
time.sleep(2)  


#取出年
Data = time.localtime() 
print(Data.tm_year)

2.2 random模块

#random模块
import random

print (random.random())  #随机[0, 1)
print (random.randint(1,4)) #随机整数[1,4]
print(random.randrange(1,4)) #顾头不顾尾,[1, 4)

2.3 OS模块

提供对操作系统进行调用的接口

#OS模块

import os
os.path.abspath(path) #返回path规范化的绝对路径
os.remove()  #删除一个文件

2.4 sys模块

#sys模块

sys.path           #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

2.5 shutil模块

copy文件用的,以及压缩包

2.6 json&pickle模块

用于序列化的两个模块

python中的字典、列表如何写到文件里(只能bytes类型或者字符串),用json转换

  • json:用于字符串和python数据类型间的转换
  • pickle:用于python特有的类型 和 python的数据类型间进行转换,支持python所有:函数、类

Json模块提供了四个功能:dumps、dump、loads、load

老老实实dump一次,load一次

2.7 shelve模块

2.8 xml处理模块

2.9 PyYAML模块

2.10 ConfigParser模块

2.11 Subprocess模块

2.12 logging模块

2.13 re模块

正则表达式:模糊查找(姓陈的,名字不超过2个字的)

猜你喜欢

转载自www.cnblogs.com/zhuyijunn/p/9877386.html