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日志模块 日志等级 常用处理 "四大天王" ...
随机推荐
- 浅谈Http协议是怎么回事?
老实说关于http协议这个概念,见到最多的还是各类招聘信息.在平时的工作中,除了了解一些请求,响应,请求头这些概念外,对于http协议也没有太多的关心.因为貌似对平时的工作没有什么影响,所以在写这篇关 ...
- Chinese remainder theorem again(中国剩余定理)
C - Chinese remainder theorem again Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:% ...
- Codeforces687C(SummerTrainingDay03-D DP)
C. The Values You Can Make time limit per test:2 seconds memory limit per test:256 megabytes input:s ...
- Java 并发:Future FutureTask
Future 当向一个ExecutorService提交任务后可以获得一个Future对象,在该对象上可以调用get,cancel等命令来获取任务运行值或者是取消任务.下面是一个简单的计数任务: pu ...
- JavaScript--DOM进阶(20)
// DOM自身存在很多类型,在上一章中有介绍,比如Element类型:表示的是元素节点;再比如Text类型;表示的是文本节点; 一 DOM类型 类型名 说明 Node 表示所有类型值的统一接口,IE ...
- ubuntu16.4+nginx+uwsgi+Django 部署上线
Nginx概述 Nginx是一款轻量级的HTTP服务器,采用事件驱动和异步非阻塞处理方式框架,这让其具有极好的IO性能,市场用于服务端的反向代理和负载均衡 Nginx优点 高并发连接:官方测试Ngin ...
- codevs1735 方程的解数(meet in the middle)
题意 题目链接 Sol 把前一半放在左边,后一半放在右边 meet in the middle一波 统计答案的时候开始想的是hash,然而MLE了两个点 实际上只要排序之后双指针扫一遍就行了 #inc ...
- js 匿名函数立即执行问题
js立即执行函数写法理解 这篇真的写得很清楚了,不光括号可以将函数声明转换成函数表达式然后立即执行,!,+,-,=也都可以转换,但是可能会带来意外的结果,因此一般都用括号实现. 还有关于for (va ...
- ActiveReports 报表控件V12新特性 -- RPX报表转换为RDL报表
ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...
- Linux 修改linux的SSH的默认端口
修改linux的SSH的默认端口 by:授客 QQ:1033553122 安装完linux后,默认的情况下ssh是开放的,容易造到黑客攻击,简单有效的操作之一就是修改默认端口号 步骤一:修改/et ...