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日志模块 日志等级 常用处理 "四大天王" ...
随机推荐
- Bell(矩阵快速幂+中国剩余定理)
Bell Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- hdu1072(Nightmare)bfs
Nightmare Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- Hanoi问题 算法
问题描述:假设有3个分别命名为A.B.C的塔座,在塔座A上插有n个直径大小各不同,一小到大标号为1,2,….,n的圆盘,要求将塔座A上的n个圆盘移动到C盘上,并且仍按原来的顺序叠排. 同时遵循下列规则 ...
- 01-MySql的前戏
[转]01-MySql的前戏 MySql的前戏 在学习Mysql之前,我们先来想一下一开始做的登录注册案例,当时我们把用户的信息保存到一个文件中: #用户名 |密码root|123321 alex|1 ...
- org.springframework.web.util.NestedServletException Handler processing failed; n
因为谷歌的lists不支持或使用, 所有要改成java的list工具 谷歌list使用: import com.google.common.collect.Lists; .... Lists.newA ...
- MySQL入门详解(三)---mysql如何进行主从配置
基本要求 两台服务器(windows,linux,mac) 双方mysql版本需一致,如不一致,只要主节点低于从节点 两台服务器防火墙关闭 双方数据库所用的用户,要具有远程访问的权限 主服务器配置 修 ...
- drupal7 获取profile2模块自定义字段的值
$user=user_load($uid); $student=profile2_load_by_user($user,'student'); 这个函数官方有文档,通过用户对象返回用户的profile ...
- span元素文字自动换行
<span>加上display:inline-block,成功实现了想要的效果.但又有一个问题,纯连续字母和数字不会换行,最后加上word-wrap: break-word强制自动换行搞定 ...
- windows安装mysql数据库
一.下载安装包.进入mysql官网https://www.mysql.com/ 二.打开安装包安装 以上步骤直接点击next即可,遇到配置密码就配置下
- 微信小程序< 1 > ~ Hello 微信小程序
简介 微信小程序,最近声音比较大,开始慢慢学习一下这个小东西,从安装开发工具开始吧,不会JS,学起来会不会很吃力呢? 注册账号 参考官方网站 开发工具 1.微信Web开发工具 2.官方下载地址,针对自 ...