python模块补充
collections模块
collections模块namedtupe方法。又称具名元组。
from collections import namedtuple point = namedtuple('空间坐标', 'x y z') # x y z可以写成列表形式,元组等可迭代对象 res = point(3, 4, 5) print(res) # 空间坐标(x=3, y=4, z=5) print(point(3, 4, 5).x) # 提取x 结果 3 print(point(3, 4, 5).y) # 提取y 结果 4 print(point(3, 4, 5).z) # 提取z 结果 5
队列queue
# 队列先进先出 import queue q = queue.Queue() q.put('1') # 先进1 q.put('2') # 在进2 q.put('3') # 最后进3print(q.get()) # 结果 1 print(q.get()) # 结果2 print(q.get()) # 结果3# 注使用queue方法时,取值借助get函数。当值取完后仍取值,程序会原地等待,直到拿到值为止
双端序列deque。从左右两边都可添加值进去,但仍然按照队列规则,先进先出。
from collections import deque q = deque(['x','y','z']) q.append(1) q.appendleft('a') print(q) # deque(['a', 'x', 'y', 'z', 1]) print(q.popleft()) # 结果 a print(q.pop()) # 1
有序字典OrdereDict。
# 有序字典在其中添加键值,会在后面追加,这个排序位置不变。 from collections import OrderedDict dict_queue = OrderedDict([(1,'A'), (2,'B')])dict_queue['a'] = 1 dict_queue['b'] = 2 print(dict_queue)
默认值字典defaultdict
from collections import defaultdict my_dict = defaultdict(list) # 设置默认值位为列表 print(my_dict['a']) # [] print(my_dict) # 结果defaultdict(<class 'list'>, {'a': []})
计数字典counter
from collections import Counter s = 'dadfsfgjhafgbkafha' s1 = Counter(s) print(s1) # 结果 Counter({'a': 4, 'f': 4, 'd': 2, 'g': 2, 'h': 2, 's': 1, 'j': 1, 'b': 1, 'k': 1})
时间模块(time/datatime)
time模块有三种表现形式。
1 时间戳。显示现在距离1970年1月1日零时零分零秒
import time print(time.time()) # 1563442767.252297
2 格式化时间
import time my_time = time.strftime('%Y-%m-%d %H:%M:%S') print(my_time) # 结果 2019-07-18 17:42:09 my_time1 = time.strftime('%Y-%m-%d %X') print(my_time1) # 结果 2019-07-18 17:43:38 my_time2 = time.strftime('%Y-%m') print(my_time2) # 结果 2019-07 my_time3 = time.strftime('%X') print(my_time3) # 结果 17:45:32
3 结构化时间
import time my_time = time.localtime() print(my_time) # 结果 time.struct_time(tm_year=2019, tm_mon=7, tm_mday=18, tm_hour=17, tm_min=48, tm_sec=22, tm_wday=3, tm_yday=199, tm_isdst=0)
三种形式之间的转化
''' 三种形式的互选转换 ''' # 结构化时间与时间戳之间的转化 import time my_1time = time.time() # 时间戳 my_3time = time.localtime(my_1time) # 等价于my_3time1 = time.gmtime(my_1time) 转结构化时间 print(my_3time) # 结果 time.struct_time(tm_year=2019, tm_mon=7, tm_mday=18, tm_hour=18, tm_min=19, tm_sec=21, tm_wday=3, tm_yday=199, tm_isdst=0) my_1time1 = time.mktime(my_3time) # 结构化时间转时间戳 print(my_1time1) # 结果 1563445161.0# 结构化时间于格式化时间的转化 my_2time = time.strftime('%Y-%m-%d') # 格式化时间 my_2time1 = time.strftime('%Y-%m-%d %X', time.localtime(1563445161)) # 转格式化时间 print(my_2time1) # 结果 2019-07-18 18:19:21 my_3time = time.strptime('2019-07-18',my_2time) #转结构化时间(my_2time中格式化时间到天,否则报错) print(my_3time)
datetime时间模块
import datetime my_time = datetime.date(2019,6,11) # 自定义化时间 print(my_time) # 结果 2019-06-11 my_time1 = datetime.date.today() # 当前时间 print(my_time1) #结果2019-07-18 my_time = datetime.datetime.today() # 精确时间获取 print(my_time) # 结果 2019-07-18 18:59:00.905379# 获取年月日 print(my_time.year) # 结果 2019 print(my_time.month) # 结果 7 print(my_time.day) # 结果 18 print(my_time.weekday()) # 结果 3 print(my_time.isoweekday()) # 结果 4# datetime运算操作 import datetime now_day = datetime.date.today() # 日期对象 last_day = datetime.timedelta(days=7) # timedate对象 rec = now_day + last_day # 日期对象 + timelate对象 print(rec) # 日期对象 :结果2019-07-25 rec1 = rec - now_day # 日期对象 - 日期对象 print(rec1) # timedate对象 结果 7 days, 0:00:00
随机模块random
#随机数获取 import random print(random.random()) # 获取0到1之间的数 结果:0.21267928084158305 print(random.uniform(1, 10)) # 获取1到10之间的数 结果:6.744952496036854 print(random.randint(1, 10)) # 获取1(包括1)到10(包括10)之间的整数 结果:3 print(random.choice('123')) # 获取字符串中的一个元素。(可迭代对象) 结果:3 print(random.sample([1,'23',3,[4,5]],2)) # 获取字符串中的两个元素。(可迭代对象) 结果:['23', [4, 5]]
sys模块
sys模块和python解释器紧相关
sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称
os模块
os模块于操作系统相关
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.system("bash command") 运行shell命令,直接显示 os.popen("bash command).read() 运行shell命令,获取执行结果 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cdos.path 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所指向的文件或者目录的最后修改时间 os.path.getsize(path) 返回path的大小
os模块操作
序列化
序列是指字符串,序列化就是将其他数据类型转化成字符串的过程。反序列化就是将字符串转化成其他数据的过程。序列化有两个模块,json模块和pickle模块。两者有些不同,json支持多种编程语言,适用范围广泛,但支持数据类型少。pickle模块支持python所有数据类型,但是对于其他编程语言不支持。
序列化和反序列化json有四种方法。
dumps 与 loads dump 与 load '''import json str1 = 'abcdefg' dict1 = {} for k, v in enumerate(str1, 1):dict1[v] = k str_dict = json.dumps(dict1) print(str_dict, type(str_dict)) yuan_dict = json.loads(str_dict) print(yuan_dict, type(yuan_dict))f = open('json_file','w') dic = {'k1':'v1','k2':'v2','k3':'v3'} json.dump(dic,f) #dump方法接收一个文件句柄,直接将字典转换成json字符串写入文件 f.close()f = open('json_file') dic2 = json.load(f) #load方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回 f.close() print(type(dic2),dic2)
View Code
转载于:https://www.cnblogs.com/huaiXin/p/11208668.html
python模块补充相关推荐
- Python开发【第七篇】: 面向对象和模块补充
内容概要 特殊成员 反射 configparser模块 hashlib模块 logging模块 异常处理 模块 包 1. 特殊成员 什么是特殊成员呢? __init_()就是个特殊的成员. 带双下划线 ...
- python常用模块大全总结-常用python模块
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. python常用模块什么是模块? 常见的场景:一个模块就是一个包含了py ...
- Python模块EasyGui专题学习
Python模块EasyGui专题学习 1.msgbox(msg,title,ok_button="OK",image="",root=None) 代码 imp ...
- 【Python面试】 说说Python模块主要分哪三类?
往期面试题: 说说Python变量.函数.类的命名规则? 说说Python可变与不可变数据类型? 说说Python面向对象三大特性? 说说Python中有几种数据类型? 废话不多说,开始今天的题目: ...
- python模块下载过程_常用的python模块及安装方法
bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framework ctypes:用来调用动态链接库 DBUti ...
- python_9(模块补充)
第1章 re模块补充 1.1 贪婪匹配:回溯算法 1.2 .*?的用法 1.3 例:分组<name>取值 1.4 匹配整数删除小数 1.5 正则测试地址 第2章 重点模块 2.1 hash ...
- 常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framework c ...
- 常用python模块及安装
adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framework c ...
- python模块学习笔记
python模块学习笔记 1.Python自动发送邮件smtplib 2.制作二维码图片MyQR 3.绝对值模块math 4.CSV模块 5.openpyxl 模块,操作Excel文件 ExcelMa ...
最新文章
- ERP项目选型实施注意的几点(二)
- 前百度智能硬件产品负责人邓晗:语⾳交互设计的原则
- android 覆盖安装问题
- python可视化水平双向箭头_python数据可视化第二弹
- Android控件用法总结之EditText
- MYSQL基础十一--存储引擎
- HDU 4619 Warm up 2 (多校)
- web安全的学习路线
- 卷积,DFT,FFT,图像FFT,FIR 和 IIR 的物理意义。
- Linux Raid0的配置
- 利用echart和echart-gl绘制江苏省的地图之二
- Node+puppeteer学习笔记(五)--API问题解决--使用功能强大的“ eval ”函数
- 编程愤怒的小鸟代码python_Python 愤怒的小鸟代码实现(1):物理引擎pymunk使用
- 更新应用程序安卓apk时出现解析程序包时出现问题
- Android手机模拟器旋转快捷键
- [FPGA 日常记录] #4 32个 FPGA 开源网站
- 你值得安装的24个chrome插件!!!
- 数据结构(C语言严版)总结
- Oracle to_char()函数的用法
- 工商管理专业知识与实务(初级)【6】
热门文章
- 让Android Studio支持系统签名(证书)
- DEVICE_ATTR的使用
- mysql服务器查绑定的域名查_MySQL使用show status查看MySQL服务器状态信息
- 比较两个表格的不同_两表数据的核对,WPS表格似乎更加方便容易
- 【Pytorch神经网络理论篇】 01 Pytorch快速上手(一)概述+张量
- 智慧交通day01-算法库02:imutils
- Web框架——Flask系列之Flask-SQLAlchemy数据库的基本操作(九)
- LeetCode 2145. 统计隐藏数组数目(前缀和)
- 阿里云 超级码力在线编程大赛初赛 第4场 题目3. from start to end
- LeetCode 1282. 用户分组(桶排序思想)