1.定义:

模块(module):用来从逻辑上组织python代码(变量,函数,类,逻辑:实现某种功能),本质就是.py结尾的python文件(文件名:test.py对应模块名test)

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

2.导入方法

import  module_name       #导入module模块

import module_name,module2_name    #导入module 和module2模块

from module_name  import *     #导入module模块的所有方法,  不建议这么用,  模块里的函数名字可能会和其他函数名重复出现冲突

from module_name  import   m1,m2,m3    #导入多个方法

 

form module_name import logger as logger_1    # 避免冲突

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

导入模块的本质就是把python文件解释一遍

导入包的本质就是把包里面的__init__.py文件解释一遍

import XX把模块XX文件解释一遍,把所有的代码赋值给XX      调用方式XX.func()

form OO import XX 本质把XX解释了一遍,可以直接调用  XX()

4.导入优化:

form module import xx   

5.模块的分类:

a.标准库

b.开源模块 

c.自定义模块

 

 

标准库:

1.time与datetime

时间戳(time.time):time2-time1换算成秒 

格式化的时间字符换:年-月-日   时-分-秒

元组:(time.localtime)

import time
time.time() #获取时间戳
time.sleep(2)  #休眠两秒
time.gmtime(12334)  #把秒时间戳转换成UTC(世界统一时间),如果不传入参入转换当前时间戳,元组struck_time(tuple)
time.localtime(123123123) #把秒时间戳转换成本地时间,获取一个元组struck_time(tuple)
time.mktime(元组)  #把struck_time(tuple)转化成时间戳
time.strftime('%Y-%m-%d %H:%M:%S',tuple)  #格式化本地时间,获取一个时间字符串
time.strptime(string,format) #--->获取struck_time  和strftime相反
time.asctime(tuple)  #把struck_time转化成时间字符串  # 星期 月 天 时:分:秒  年
time.ctime(Seconds)  #把时间戳(秒)转化成时间字符串  # 星期 月 天 时:分:秒  年



import  datetime
print(datetime.date)
print(datetime.time)
print(datetime.datetime.now())  #获取当前时间
print(datetime.datetime.now()+datetime.timedelta(3))  #获取3天后的时间
print(datetime.datetime.now()+datetime.timedelta(-3))  #获取3天前的时间
print(datetime.datetime.now()+datetime.timedelta(hours=3))  #获取3小时后的时间
c_time=datetime.datetime.now()
c_time.replace(hour=2,minute=3)  #修改时间import  datetime
print(datetime.date)
print(datetime.time)
print(datetime.datetime.now())  #获取当前时间
print(datetime.datetime.now()+datetime.timedelta(3))  #获取3天后的时间
print(datetime.datetime.now()+datetime.timedelta(-3))  #获取3天前的时间
print(datetime.datetime.now()+datetime.timedelta(hours=3))  #获取3小时后的时间
c_time=datetime.datetime.now()
c_time.replace(hour=2,minute=3)  #修改时间

sys模块

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)        退出程序,正常退出时exit(0)
sys.version        获取Python解释程序的版本信息
sys.maxint         最大的Int值
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       返回操作系统平台名称
sys.stdout.write('please:')
val = sys.stdin.readline()[:-1]

 

os模块

os.path.abspath(__file__)  #获取当前文件绝对路径

os.path.dirname(os.path.abspath(__file__))   #获取上一级路径

x=os.path.dirname(os.path.abspath(__file__))  

sys.path.append(x)   #将x路径添加入当前文件的路径列表里,作用:可以在当前文件调用x路径里的其他文件

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
os.curdir  返回当前目录: ('.')
os.pardir  获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2')    可生成多层递归目录
os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()  删除一个文件
os.rename("oldname","newname")  重命名文件/目录
os.stat('path/filename')  获取文件/目录信息
os.sep    输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep    输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep    输出用于分割文件路径的字符串
    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command")  运行shell命令,直接显示
os.environ  获取系统环境变量
os.path.abspath(path)  返回path规范化的绝对路径
os.path.split(path)  将path分割成目录和文件名二元组返回
os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)  如果path是绝对路径,返回True
os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间

 

shutil模块

shutil.copyfileobj(fsrc, fdst[, length])
#将文件内容拷贝到另一个文件中,可以部分内容
shutil.copyfile(src, dst)
#拷贝文件
shutil.copymode(src, dst)
仅拷贝权限。内容、组、用户均不变
shutil.copystat(src, dst)
拷贝状态的信息,包括:mode bits, atime, mtime, flags
shutil.copy(src, dst)
拷贝文件和权限
shutil.copy2(src, dst)
拷贝文件和状态信息
shutil.copytree(src, dst, symlinks=False, ignore=None)
递归的去拷贝文件
例如:copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))
shutil.rmtree(path[, ignore_errors[, onerror]])
递归的去删除文件
shutil.move(src, dst)
递归的去移动文件
shutil.make_archive(base_name, format,...)
创建压缩包并返回文件路径,例如:zip、tar
base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
如:www                        =>保存至当前路径
如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
root_dir: 要压缩的文件夹路径(默认当前目录)
owner: 用户,默认当前用户
group: 组,默认当前组
logger: 用于记录日志,通常是logging.Logger对象

random模块

import random
random.random()   #随机生成0~1的浮点数
random.randint(1,3)  #随机生成1~3的整数包含1,3
random.randrange(1,10)  #随机生成1~9的整数
random.choice('str')   #生成随机字符
random.sample('m',n)   #生成n个随机字符,m可以是字符串,可以是列表,元组
random.shuffle(列表)   #打乱列表元素的顺序