collections模块:python中扩展数据类型
from collections import namedtuple p=namedtuple('名字',['x','y']):可命名元祖 pi=p(1,2) print(pi.x) print(pi.y) print(pi)
FIFO:队列 import queue q=queue.Queue() q.put(10) q.put(5) print(q):内存地址 print(q.get()) q.qsize():里面有几个值
from collections import deque d=deque([1,2]) d.append('内容'):从后面放数据 d.appendleft('内容'):从前面放数据 d.pop():从后面取数据 d.popleft():从前面取数据 d.insert('索引','要插入的内容'):指定插入 print(d)
from collections import OrderedDict od=OrderedDict([('a',1),('a',2)]):有序的字典 print(od) 取值还是一样的取
from collections import defaultdict d=defaultdict(list) d=defaultdict(lambda:你想要的值):你想要的值 print(d['k'])
from collections import Counter c=Counter('abcab') print(c)
time时间模块:跟时间有关系的模块
import time time.sleep(停多少秒) time.time:获取当前时间,是一个时间戳 格式化时间--字符串:给人看的 时间戳时间--float时间:计算机看的 结构化时间--元祖:计算用的 print(time.strftime('%Y-%m-%d %H:%M:%S')):输出就是当前的时间,年月日时分秒 s=time.localtime():结构化时间 s.time.tm_year import time:时间戳转换成结构化时间 t=time.time() print(time.localtime(t)) print(time.gmtime(t)) print(time.mktime(time.localtime):结构化时间转换成时间戳 time.strptime('2002-12.31','%Y-%m.%d'):格式化时间转换成结构化时间 time.strftime('%m/%d%Y %H:%M:%S'',time.localtime(3000)):结构化时间转换成格式化时间 time.asctime():返回当前的格式化时间 time.asctime(time.localtime(3000)):结构化时间转换成格式化时间 time.ctime():返回当前格式化时间 time.ctime(100000):时间戳转换成格式化时间
%y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %j 年内的一天(001-366) %p 本地A.M.或P.M.的等价符 %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %Z 当前时区的名称 %% %号本身
random模块:随机数模块
import random 随机小数 random.random():大于0且小于1之间的小数 random.uniform(1,3):大于1小于3的小数 随机整数 random.randint(1,5):大于1且小于等于5之间的整数 random.randrange(1,10,2):大于等于且小于10之间的奇数 随机选择一个返回 random.choice([1,'23',[4,5]]):1或者23或者[4,5] 随机选择多个返回,放回的个数为函数的第二个参数 random.sample([1,'23',[4,5]],2):列表元素任意2个组合 打乱列表顺序 item=[1,2,3,4,5,] random.shuffle(item):打乱次序
os模块:和操作系统打交道的模块
import os os.getcwd():获取当前目录 os.chdir(r'目录'):改变当前的目录 os.curdir:返回一个 . 当前目录 os.pardir:返回两个 .. 上一层目录 os.makedirs('文件名字/文件名字'):创建两个目录 os.removedirs('文件名字/文件名字')指定要删除的目录.为空就删除 os.listdir('目录'):找出所有文件和隐藏文件打印出来是列表 os.remove():删除一个文件 os.rename():重命名一个文件 os.stat(文件名):显示了文件的全部信息 os.sep():分隔符\ linux '/' os.linesep():输出当前平台使用的行终止符 linux ' ' os.pathsep():输出用于分割文件路径的字符串 ; linux : os.name():输出字符串当前使用的平台 'nt'; linux 'posix' os.system('dir'):没有返回值,直接执行操作系统 os.popen('dir').read:有返回值 os.environ:你系统的环境变量 os.path() os.path.abspath(path):返回的绝对路径 os.path.split(os.getcwd):分割 os.path.dirname():返回目录 os.path.basename():返回分割的第二个元素 os.path.exists():如果文件存在返回True.不在返回False os.path.isads():如果是绝对路径,返回True os.path.isfile():如果是一个存在的的文件,返回True否则False os.path.isdir():如果是一个存在的目录,则返回True.否则返回False os.path.join('c:','udsa','add'):自动进行拼接目录 os.path.getatime():返回所指向的文件或者目录的最后访问时间 os.path.getmtime():返回所值的文件或者目录的最后修改时间 os.path.getsize()返回文件的大小
st_mode: inode 保护模式 st_ino: inode 节点号。 st_dev: inode 驻留的设备。 st_nlink: inode 的链接数。 st_uid: 所有者的用户ID。 st_gid: 所有者的组ID。 st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。 st_atime: 上次访问的时间。 st_mtime: 最后一次修改的时间。 st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。
sys模块:和python解释器打交道的模块
import sys print(sys.platform):返回操作系统平台名称 sys.version:返回你的版本信息 sys.exit():退出程序,正常退出sys.exit(0),错误退出sys.exit(1) sys.path:返回模块的搜索路径 sys.argv:可以传参数,只能在中端使用
re模块:正则
import re re.findall()=返回所有满足条件的结果,放在列表里 re.search().group(不要写)=从前往后,找到一个就返回,没有找到就返回None,调用group会报错返回的变量需要调用group才能拿到结果 re.match()=从头开始匹配,如果正则规则从头可以匹配上,就返回一个变量 re.split('正则','内容')=按照正则分割,返回一个列表 re.sub('d','替换','内容',要替换几个)=将什么替换成什么,返回元祖 re.subn('d','替换','内容')=将什么替换成什么,结果告诉你替换了几次,返回元祖 re.compile('正则')=得到一个正则表达式 re.finditer('正则',内容)=返回一个迭代器,节省内存
序列化模块
import json 序列化:数字 字符串 列表 字典 元祖 元祖会变成列表 json.dumps( ):转化成双引号str 反序列化 json.loads( ):转回去 文件操作 json.dump(数据类型,文件句柄):序列化一次性写进文件 json.load(文件句柄):读出来是写进去的那个数据类型,一次性读出来 json.dump(数据类型,文件句柄,ensure_ascii=False):文件里能看到中文 什么都可以往里面写 import pickle pickle.dumps( ):转化成双引号str,b丝类型 反序列化 pickle.loads( ):转回去 文件操作,加b pickle.dump(数据类型,文件句柄):序列化一次性写进文件,,b丝类型你看不懂 pickle.load(文件句柄):读出来是写进去的那个数据类型,一次性读出来 import shelve 文件操作 f=shelve.open('文件名') f['key']={'dada':12}:直接对句柄操作,写到文件,文件里你看不懂 f=shelve.open('文件名') existing=f['key']:取也要用一样的取,key不存在会报错 f=shelve.open('文件名',writeback='True'):文件所有的修改都会打印出来