python内置模块
time--时间模块
时间三大类:
- 时间戳 time.time()
- 结构化时间(年月日时分秒 一周内第几天,一年内第几天,是否夏令时) time.localtime() time.gmtime()
- 格式化时间 time.strftime('%Y-%m-%d %X %p')
时间戳与结构化时间可以互相转换
结构化时间与格式化时间可以互相转换
datetime 日期时间模块(datetime包中有datetime模块)
方法
- datetime.datetime.now() 获取当前时间
- datetime.datetime.now().hour() 获取部分时间
- datetime.datetime.now().replace(year = 1999) 替换部分时间
sys 解释器模块
方法
- sys.path 环境变量 sys.path.append(路径)添加环境变量
- sys.modules 查看已加载的模块
- sys.argv 获取终端传入的参数(列表)
- sys.version 查看解释器版本
- sys.platform 查看平台名称
- sys.exit() 退出
os 操作系统模块
os:
- os.getcwd() 获取当前工作目录
- os.chdir(目录路径) 改变工作目录
- os.curdir 当前目录 .
- os.pardir 上级目录 ..
- 掌握os.makedirs(目录路径) 创建目录
- os.mkdir(目录名称) 创建单个目录
- os.removedirs(目录路径) 递归删除
- os.rmdir(目录名称) 删除单个目录
- os.remove(文件路径) 删除文件
- os.listdir(文件夹路径) 获取所有文件和文件夹名称
*os.path:
- os.path.abspath(文件相对路径) 返回绝对路径
- os.path.split(文件路径) 将路径拆分为文件夹路径和文件名称两部分
- os.path.dirname(__file__) 获取文件所在文件夹的路径
- os.path.basename(文件路径) 获取路径最后一级名称
- os.path.exists(路径) 判断该路径是否存在
- os.path.isabs(路径) 判断是否是绝对路径
- os.path.join('c:\\','xx') 将对个名称拼接为路径
- os.path.getsize('文件路径') 输出文件字节数
- os.path.normcase('路径') 路径规范化 大学变小写 斜杠统一
random 随机模块
方法:
- random.random() 0-1的随机浮点数(不包括1)
- random.randint(x,y) x-y的随机整数
- random.randrange(x,y) x-y的随机整数(不包括y)
- random.uniform(x,y) x-y的随机浮点数
- random.sample(list,x) 在列表中随机取x个值
- random.shuffle(list) 将列表中的值打乱顺序(动作)
- random.choice(list) 在列表中随机取1个值
- random.choices(list,k=x) 在列表中随机取 x个值 并放入新列表中
shutil 高级文件操作模块
方法
- shutil.copyfileobj(复制文件名,新文件名) 拷贝文件
- shutil.make_archive(要压缩的文件名,压缩格式 ,压缩文件放的路径) 压缩文件
- shutil.unpack_archive(压缩文件的路径) 解压缩文件
序列化模块:
序列化是指将内存中的数据结构转化为一种中间格式并储存在硬盘上
反序列化是将中间格式还原为内存中的数据结构
序列化模块可以更加方便的将数据存入硬盘
1.pickle python专用序列化模块(支持python所有数据类型)
方法:
- dumps 序列化
- loads 反序列化
- dump 封装了write和read更加方便
- load
序列化
user = {}
with open('db.pkl','ab') as f:
x = pickle.dumps(user)
f.write(x)
with open('db.pkl','rb') as f:
pickle.dump(user,f)
with open as f:
pickle.loads(f.read())
pickle.load(f)
2.shelve python专用序列化模块(支持python所有数据类型)
shelve方法不需要关心文件模式
序列化
user = {}
s = shelve.open('db.shv') #打开文件
s['user'] = user
s.close()
反序列化
s = shelve.open('db.shv',writeback=True)
x = s['user']
print(x)
s.close()
3.json 通用序列化模块
json是一种通用的数据格式
js 中的数据类型 python数据类型 的对应关系
{} 字典
[] list
string "" str
int/float int/float
true/false True/False
null None
json格式x.json:
user=
{
"users": [{
"name": "agon",
"age": 68
},
{
"name": "agon",
"age": 68
}
]
}
方法:
dumps
loads
dump
load
序列化
with open('db.json','wt',encoding='utf-8') as f:
f.write(json.dumps(user))
反序列化
with open(''db.json,'rt',encoding='utf-8') as f:
user = json.loads(read())
4.xml 比较旧的通用序列化模块
xml格式a.xml:
<标签>
<标签>
<标签>内容</标签>
</标签>
</标签>
可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标
签。这种语法是在⼤于符号之前紧跟一个斜线(/)
解析器会将其翻译成<百度百科词条></百度百科词条>。
例例如<百度百科词条/>。
方法
form xml.etree import ElementTree as ET
- ETree = ET.parse('db.xml') 解析xml文件
- root = ETree.getroot() 获取根标签
- for item in root.iter(标签名) 获取标签的方式1
- root.find(标签名).attrib 获取标签的方式2
- rootTree.findall(标签名) 获取标签的方式3
- item.tag 标签名称
- item.attrib 标签属性
- item.text 文本内容
- root.find(标签).get(标签) 获取单个属性
- root.remove 删除子标签
- 添加子标签
tag = ElementTree.Element(‘标签’,{‘属性’,‘值’})
root.append(tag)
ETree.write(''db.xml',encoding='utf-8')
configparser 配置文件模块
配置文件是包含配置程序信息的文件
需要改但不经常改的信息为配置信息
配置文件中有两种内容
section 分区和option 选项
- config = configparser.ConfigParser() 创建一个解析器
- config.read('db.cfg',encoding='utf-8') 解析
- config.sections() 获取所有分区名
- config.option() 获取所有选项名
- config.get(分区,选项) 获取选项的值(返回字符串)
- config.getint() 获取值(返回int类型)
- config.has_section() 判断是否有该分区
- config.has_option() 判断是否有该选项
- config.add_section() 添加分区
- config.set(分区,选项,值) 修改值
- config.remove_option() 删除选项
logging 日志文件模块
日志配置文件组成部分
日志生成器 logger(调用书写日志的配置文件,关联处理器)
过滤器 filter()
处理器 handler(将信息打印到相应的日志文件,关联格式处理器)
格式处理器 formatter(将信息格式化)
默认级别30 级别大于30日志才显示
logging.debug() 写入调试信息10
logging.info() 普通消息20
logging.warning() 警告30
logging.error() 错误40
logging.critical() 严重错误50
mylog = logging.getLogger(日志生成器) 创建(获取)日志生成器
mylog.setLevel(10) 设置生成器级别
fh = logging.FileHandler(日志名,encoding) 创建一个日志处理器
fm = logging.Formatter(格式)
logging.config.dictConfig() 解析日志配置文件
将mylog,fh,fm关联
mylog.addHandler(fh)
fh.setformatter(fm)
日志继承值propagate默认True True为继承False为不继承
mylog.propagate = Flase
流处理器StreamHandler()让格式化信息显示在控制台
logging.StreamHandler()
%(name)s:Logger的名字,并非用户名,详细查看 %(levelno)s:数字形式的日志级别 %(levelname)s:文本形式的日志级别 %(pathname)s:调用日志输出函数的模块的完整路径名,可能没有 %(filename)s:调用日志输出函数的模块的文件名 %(module)s:调用日志输出函数的模块名 %(funcName)s:调用日志输出函数的函数名 %(lineno)d:调用日志输出函数的语句所在的代码行 %(created)f:当前时间,用UNIX标准的表示时间的浮 点数表示 %(relativeCreated)d:输出日志信息时的,自Logger创建以 来的毫秒数 %(asctime)s:字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒 %(thread)d:线程ID。可能没有 %(threadName)s:线程名。可能没有 %(process)d:进程ID。可能没有 %(message)s:用户输出的消息
hashlib hash算法加密模块
hash算法是将一个任意长度的数据根据hash算法计算得到一个固定长度的特征码
h = hashlib.md5(‘123’.encode(‘utf-8’)) md5加密(32位特征码)
hashlib.sha512() sha512加密(128位特征码)
h.hexdigest() 获取特征码
加盐
hashlib.md5('123'.encode(utf-8)).update('asdfghjkl'.encode(utf-8))
re--匹配字符串模块(正则表达式)
正则表达式-- 由一些带有特殊意义的符号组成的式子,可以处理字符串
[\u4e00-\u9fa5] 匹配中文
re.findall(正则,待匹配字符串) 匹配字符串
re.match() 匹配字符串开头 只匹配一个 返回一个对象 .group()可以获取字符串
re.search() 全范围匹配 只匹配一个
re.compile(\d{3}) 将正则表达式编译成一个对象,之后可以不用在写表达式直接开始匹配
re.split() 可以用正则表达式分隔字符串
subprocess--子进程模块
res = subprocess.Popen() 封装
subprocess.call() 打开子进程
res.kill() 关闭子进程
python内置模块的更多相关文章
- python内置模块(4)
这一部分是python内置模块系列的最后一部分,介绍了一些小巧有用的内置模块. 目录: 1.random 2.shelve 3.getpass 4.zipfile 5.tarfile 6.bisect ...
- Python学习笔记【第八篇】:Python内置模块
什么时模块 Python中的模块其实就是XXX.py 文件 模块分类 Python内置模块(标准库) 自定义模块 第三方模块 使用方法 import 模块名 form 模块名 import 方法名 说 ...
- Python内置模块与标准库
Python内置模块就是标准库(模块)吗?或者说Python的自带string模块是内置模块吗? 答案是:string不是内置模块,它是标准库.也就是说Python内置模块和标准库并不是同一种东西. ...
- python内置模块[re]
python内置模块[re] re模块: python的re模块(Regular Expression正则表达式)提供各种正则表达式的匹配操作,在文本解析.复杂字符串分析和信息提取时是一个非常有用的工 ...
- python内置模块[sys,os,os.path,stat]
python内置模块[sys,os,os.path,stat] 内置模块是python自带功能,在使用内置模块时,需要遵循 先导入在 使用 一.sys 对象 描述 sys.argv 命令行参数获取,返 ...
- Python内置模块和第三方模块
1.Python内置模块和第三方模块 内置模块: Python中,安装好了Python后,本身就带有的库,就叫做Python的内置的库. 内置模块,也被称为Python的标准库. Python 2.x ...
- python内置模块collections介绍
目录 python内置模块collections介绍 1.namedtuple 2.deque 3.defaultdict 4.OrderedDict 5.ChainMap 6.Counter 7.小 ...
- python内置模块介绍(一)
本文主要介绍模块列表如下: os sys re time datetime random shutil subprocess os模块 os.getcwd() ...
- python内置模块(time模块)
常用的python内置模块 一.time模块 在python的三种时间表现形式: 1.时间戳,给电脑看的. - 自1970-01-01 00:00:00到当前时间,按秒计算,计算了多少秒. impor ...
- python 内置模块续(二)
目录 python 内置模块补充 1.hashlib模块 简易使用: 高级使用: 进阶使用: 加盐处理: 校验文件一致性 2.logging日志模块 日志等级 常用处理 "四大天王" ...
随机推荐
- 如何给oracle账户解锁
在创建数据库时,已经为SYS等4个账户设定了口令,其中SYS与SYSTEM具有管理员权限,在SQL*Plus工具中使用SYSTEM账户登录Oracle数据库. 1.通过数据字典dba_users,查看 ...
- 2018 Google SEO 需要注意的点
1.RankBrain 是一种机器学习系统 - 会根据用户的行为进行,对网站排名. 用户在你的网页上停留多久(用户停留时长) 多大比例的用户点击了你的网页(点击率) Note: 之前Google 开发 ...
- ifream框架角色切换
js受制于单个页面,用ifream框架做web系统,会遇到角色切换菜单刷新的问题,我就来讲一下我的思路: 用户登录时将用户角色放入session中,以角色id为key,权限为值,角色切换时将相应角色i ...
- jdk源码->集合->HashMap
一.hash算法 1.1 hash简介 hash,一般翻译为散列,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出值就是散列值,这种转换是一种压缩映射,也就是散列的空间小于输入的空间, ...
- 天梯赛2016-L2
L2-001. 紧急救援 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在 ...
- 【代码笔记】iOS-给密码进行加密
一,工程图. 二,代码. #import "ViewController.h" #import "Base64CodeByteFunc.h" @interfac ...
- Java基础笔记(1) 语言 JAVA的历史 Java的搭建环境
本文除了搭建是重点,其他的都当阅读小说一样去看就好了,不想看可以直接抓住重点,我会改变颜色勾出重点! 英语是人与人交流沟通的重要方式之一.JAVA:是人与计算机沟通交流重要方式之一.我们除了用java ...
- 《JavaScript面向对象编程指南》
第一章.引言 1.5 面向对象的程序设计常用概念 对象(名词):是指"事物"在程序设计语言中的表现形式. 这里的事物可以是任何东西,我们可以看到它们具有某些明确特征,能执行某些动作 ...
- logger.error完整打印错误堆栈信息
所以我们的写法可以是: Logger.error("xxx出错" , e); //第二个参数是e 而不是: Logger.error("xxx出错:" + e) ...
- SpringBoot_Mybatis_Maven_BootStrap
需要eclipse 配置maven 未完,待续 链接:https://pan.baidu.com/s/1vej2zEdJmKeMUJD9S1B5MA 密码:y5j9