目录

  • time 模块

    • 为什么要有time模块,time模块有什么用?
    • time模块的三种格式
      • 时间戳(timestamp)
      • 格式化时间(需要自己定义格式)
      • 结构化时间(struct—time)
      • 结构化时间转换为格式化时间
      • 结构化时间转换为时间戳
      • 时间戳转换成结构化时间
      • 格式化时间转换成结构化时间
      • 程序延时
  • datetime 模块
    • 为什么要有datetime模块,有什么用?
    • 获取当前时间
    • 时间的加减
      • 时间的年月日的修改
  • random 模块
    • 为什么要有random模块,有什么用?
  • os模块(与操作系统交互)
  • sys 模块(与python交互)
  • json 模块 与pickle 模块
    • 序列化(dump)
    • 反序列化 (load)
  • pickle
    • 序列化
    • 反序列化

time 模块

为什么要有time模块,time模块有什么用?

time模块用来打印时间,并且有暂停程序的功能,需要时间的地方就要调用。

time模块的三种格式

时间戳(timestamp)

时间戳表示的是从1970年1月1日0:00:00开始按秒计算的偏移量

import time
print(time.time())1560166598.8710632

格式化时间(需要自己定义格式)

格式化时间就是普通字符串格式的时间表示方式,需要自己定义格式。

print(time.strftime('%Y-%m-%d'))
2019-06-10

结构化时间(struct—time)

print(time.localtime()) # 北京时间
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=19, tm_min=42, tm_sec=45, tm_wday=0, tm_yday=161, tm_isdst=0)print(time.gmtime()) # 格林威治时间(时间标准时间)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=11, tm_min=43, tm_sec=46, tm_wday=0, tm_yday=161, tm_isdst=0)

结构化时间转换为格式化时间

struct_time = time.localtime()
print(time.strftime('%Y-%m-%d',struct_time))2019-06-10

结构化时间转换为时间戳

print(time.mktime(struct_time))
1560167473.0

时间戳转换成结构化时间

stamp_time = time.time()
print(time.localtime(stamp_time))time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=19, tm_min=55, tm_sec=25, tm_wday=0, tm_yday=161, tm_isdst=0)

格式化时间转换成结构化时间

print(time.strptime('2019-06-01 12:00:00','%Y-%m-%d %X'))time.struct_time(tm_year=2019, tm_mon=6, tm_mday=1, tm_hour=12, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=152, tm_isdst=-1)

程序延时

time.sleep(1)

datetime 模块

为什么要有datetime模块,有什么用?

datetime模块能进行时间的加减

获取当前时间

import datetimenow = datetime.datetime.now()
print(now)2019-06-10 20:05:05.697198

时间的加减

print(now + datetime.timedelta(3))  # 3代表的参数表示天数,且里面的参数只能是天,不能进行年和月的加减print(now + datetime.timedelta(-3))2019-06-13 20:06:34.748685
2019-06-07 20:09:11.633673

时间的年月日的修改

print(now.replace(year=2010,month=6,day=8,hour=19,minute=10,second=11))2010-06-08 19:10:11.641058

random 模块

为什么要有random模块,有什么用?

  • 打印(0,1)之间的数, 不会取0和1
print(random.random())
0.9112520136212495
  • 打印[n,m]的整数 # 会去n和m

    print(random.randint(1,5))1
  • 打印(n,m)的小数

    print(random.uniform(1,5))4.66308974253497
  • 打印[n,m)的整数 取头不取尾

    print(random.randrange(1,3))1

    ### 从容器中随机选择一个(牢记,经常用) 抽奖程序就是基于这个基础做出来的

    res = random.choices([1,4,7,9])
    print(res)[4]

    抽奖实例:

    count =0
    while True:res = random.choices([1000,22,333,44])count +=500if count == 3000:print(f'恭喜你获得1000元大奖')else:if res ==1000:print('再来一次!')else:print(f'恭喜你获得{res}')

    从容器中随机选择多个(牢记,经常用)

    print(random.sample([1,2,'w','t'],2))
    [1, 'w']

    打乱容器顺序(牢记)

lis = [1,2,3,4]
random.shuffle(lis)
print(lis)[3, 1, 2, 4]

os模块(与操作系统交互)

os模块与操作系统交互,在python中进行文件操作

  • 创建文件夹 os.mkdir()
  • 删除文件夹,递归往上删除空文件夹 os.removedirs()
  • 删除一个空文件夹 os.rmdir()
  • 列出文件夹所有文件名和隐藏文件名 os.listdir()
  • 删除文件 os.remove()
  • 重命名文件名 os.rename()
  • 打印环境变量 os.envirom()
  • 添加环境变量 os.path.dirname(‘程序执行文件所在的文件夹路径’)==重点==
  • 判断文件是否存在 os.path.exists()
  • 拼接文件路径(因为不同系统的路径拼接符不一样)os.path.join()
  • 计算文件大小 os.path.getsize()==重点==
  • 打印文件夹下所有文件夹和文件 os.walk()

sys 模块(与python交互)

  • 查看当前文件路径 sys.argv() ==重点==

    print(sys.argv)['D:/pycharm学习笔记/test1/test-6-10.py']
  • 获取解释器版本 sys.hexversion

    print(sys.hexversion)
    50726128
  • 获取当前文件导入模块的路径 sys.path ==重点==

    print(sys.path)['D:\\pycharm学习笔记\\test1', 'D:\\pycharm学习笔记', 'D:\\python3\\python36.zip', 'D:\\python3\\DLLs', 'D:\\python3\\lib', 'D:\\python3', 'D:\\python3\\lib\\site-packages', 'D:\\pycharm\\PyCharm 2018.1.4\\helpers\\pycharm_matplotlib_backend']

json 模块 与pickle 模块

序列化(dump)

从内存到硬盘这个过程叫做序列化,序列化必须得规定格式

特点:

  • 持久保存状态
  • 跨平台交互数据(但只能存dict/list/str/int/float/bool/None)
with open('文件.json','w',encoding='utf8') as fw:json.dump(dict,fw)

反序列化 (load)

with open('文件.json','r',encoding='utf8') as fr:data = json.load(fr)

pickle

  • pickle也是序列化和反序列化,json可以跨平台,只支持dict/list/str/int/float/bool/None

  • pickle支持python中任意数据类型,所以不能跨平台(不同平台的函数一定是不同的),pickle模块序列化过程是以==二进制==形式转换

序列化

with open('文件.json','wb') as fw:pickle.dump(dict,fw)

反序列化

with open('文件.json','rb') as fr:data = pickle.load(fr)

转载于:https://www.cnblogs.com/raynduan/p/11079149.html

python-time模块--pickle模块相关推荐

  1. 【pickle】详解python中的pickle模块(常用函数、示例)

    1.序列化.反序列化介绍 序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 2.pickle模块说明 python中的pickle模块实现 ...

  2. 常用模块——pickle模块

    import pickle name = 'msj' age = 25 height= 184 user = {'name':name,'age':age,'height':height}#内存中数据 ...

  3. Python中的pickle模块

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. Pickle模块的作用 Pickle模块用于将python对象序列化为字节流,可存储在文件或数据库中,也可同通过网络进行 ...

  4. 序列化模块--json模块--pickle模块-shelve模块

    什么叫序列化? 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传播到远程,因为硬盘或网络传输时只能接受bytes 例: 把内存数据 转成字符 # data ={# 'roles ...

  5. random模块 时间模块 sys模块 os模块 json模块 pickle模块

    一.random模块 random.random() 取0-1之间的小数 random.uniform() 取某个范围之间的小数 random.randint()      取某个范围的其中一个数[  ...

  6. os模块,序列化模块,json模块,pickle模块

    OS模块 把路径中不符合规范的/改成操作系统默认的格式 1 path = os.path.abspath("D:\dayday\day 19\3.py") 2 print(path ...

  7. Python 学习笔记 -- pickle模块,如何腌制泡菜(入门级)

    #关于腌菜的基础操作 #一般情况下学会腌菜的技术可以使文件大小更加小巧,更加持久. #下来是就是一些腌菜的基础用法 import pickle, os #在腌菜之前需要导入腌菜模块#实例一:这是一个保 ...

  8. Python对象序列化-Pickle模块

    一 前言 一般情况下,如果要在不同的主机上传递数据,其传递的数据格式是二进制或字符串.字符串的传输是日常网络通信中的普遍情况,如socket.后端接口.下位机与上位机的通信等等,所以这篇主要来解决数据 ...

  9. python观察日志(part9)--数据库与pickle模块

    学习笔记,有错必纠 数据库 数据库是一个有组织的用于存储数据的文件,许多数据库都像字典一样组织数据,因为它也将键映射到值上,数据库和字典之间最大的区别是数据库是保存在磁盘上的(或者其他永久存储上),所 ...

最新文章

  1. 轻量级HTTP服务器Nginx(配置与调试Nginx)
  2. Lintcode132 Word Search || solution 题解
  3. 电影点评系统论文java_毕业设计(论文)-基于web的电影点评系统分析与设计.docx...
  4. select标签中的选项分组
  5. 40. Combination Sum II 组合总和 II
  6. 硬件:开机如何进BIOS,U盘启动快捷键一键查询!
  7. 机器人出魔切还是三相_英雄联盟:辅助也要去上单,机器人布里茨玩法介绍
  8. forge开发_使用Forge,WildFly Swarm和Arquillian开发微服务
  9. mysql jdbc8.0驱动包下载_MySQL8.0 connector JAR包的下载位置及JDBC配置
  10. 量产软件测试培训,U盘量产及在虚拟机中测试
  11. 金蝶专业版怎么反过账当月_金蝶KIS专业版没有反过账功能,怎么反过账
  12. VBA金额转换中文大写(原创新解版)
  13. 【解决方案】“云-端协同”打造基于安防视频云服务EasyCVR的雪亮工程监管视频平台
  14. SpringBoot2源码笔记
  15. java 代码箭头代表什么_箭头运算符' - '在Java中做什么?
  16. Python开发培训怎么选
  17. 2个相同的 stm32 can通讯不成功_CAN通讯系列--CAN通讯简介1
  18. 常用图标(icon)css下载
  19. 建模语言UML在软件开发中的应用
  20. 接口自动化测试框架(一):框架介绍

热门文章

  1. iQOO手机发布后 黑鲨游戏手机CEO吴世敏:黑鲨2 稳了
  2. 程序员35岁辞职后都做了什么工作三位过来人透露了实情,引热议
  3. 如何在博客上添加小游戏【原创】
  4. 软件测试:web渗透测试怎样入门!讲透了...
  5. Java入门到大神你需要掌握这些技术
  6. html3d转换,CSS3 3D 转换
  7. 春晓html代码,春晓
  8. c语言调用sqlite
  9. u-boot移植随笔:自定义u-boot命令点灯
  10. 【Clickhouse】ClickHouse 内部架构介绍