目录

time 模块

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

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

time模块的三种格式

时间戳(timestamp)

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

  1. import time
  2. print(time.time())
  3. 1560166598.8710632

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

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

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

结构化时间(struct—time)

  1. print(time.localtime()) # 北京时间
  2. 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)
  3. print(time.gmtime()) # 格林威治时间(时间标准时间)
  4. 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)

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

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

结构化时间转换为时间戳

  1. print(time.mktime(struct_time))
  2. 1560167473.0

时间戳转换成结构化时间

  1. stamp_time = time.time()
  2. print(time.localtime(stamp_time))
  3. 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)

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

  1. print(time.strptime('2019-06-01 12:00:00','%Y-%m-%d %X'))
  2. 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)

程序延时

  1. time.sleep(1)

datetime 模块

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

datetime模块能进行时间的加减

获取当前时间

  1. import datetime
  2. now = datetime.datetime.now()
  3. print(now)
  4. 2019-06-10 20:05:05.697198

时间的加减

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

时间的年月日的修改

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

random 模块

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

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

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

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

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

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

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

    抽奖实例:

    1. count =0
    2. while True:
    3. res = random.choices([1000,22,333,44])
    4. count +=500
    5. if count == 3000:
    6. print(f'恭喜你获得1000元大奖')
    7. else:
    8. if res ==1000:
    9. print('再来一次!')
    10. else:
    11. print(f'恭喜你获得{res}')

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

  1. ```python
  2. print(random.sample([1,2,'w','t'],2))
  3. [1, 'w']
  4. ```

打乱容器顺序(牢记)

  1. lis = [1,2,3,4]
  2. random.shuffle(lis)
  3. print(lis)
  4. [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() 重点

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

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

    1. print(sys.path)
    2. ['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)
  1. with open('文件.json','w',encoding='utf8') as fw:
  2. json.dump(dict,fw)

反序列化 (load)

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

pickle

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

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

序列化

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

反序列化

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

python-time模块--pickle模块的更多相关文章

  1. python(31)——【sys模块】【json模块 & pickle模块】

    一.sys模块 import sys sys.argv #命令行参数List,第一个元素是程序本身路径 sys.exit() #退出程序,正常退出时exit(0) sys.version #获取pyt ...

  2. Python进阶(九)----json模块, pickle模块, os模块,sys模块,hashlib模块

    Python进阶----json模块, pickle模块, os模块,sys模块,hashlib模块 一丶序列化模块 什么是序列化: ​ 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输 ...

  3. sys模块&json模块&pickle模块

    sys模块&json模块&pickle模块 sys模块 一.导入方式 import sys 二.作用 与Python解释器交互 三.模块功能 3.1 经常使用 sys.path #返回 ...

  4. [python标准库]Pickle模块

    Pickle-------python对象序列化 本文主要阐述以下几点: 1.pickle模块简介 2.pickle模块提供的方法 3.注意事项 4.实例解析 1.pickle模块简介 The pic ...

  5. python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )

    1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...

  6. Python json和pickle模块

    用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps. ...

  7. day19 python模块 json模块 pickle模块

    day19 python   一.序列化模块     序列类型: 列表 字符串 元组 bytes     序列化: 特指字符串和bytes, 就是把其他的数据类型转化成序列的数据类型的过程 dic = ...

  8. python学习-50 pickle模块

    pickle模块 与json方法是一样的 import pickle dic = {'} print(type(dic)) a = pickle.dumps(dic) print(type(a)) f ...

  9. Python学习笔记——pickle 模块

    由于从文本文件中读取出来的内容都会变成字符串,且转换成列表.字典等数据类型比较困难,因此采用pickle模块存储它们 import pickle my_list = [123,3.14,'小甲鱼',[ ...

  10. 模块之 logging模块 time 模块 random模块 sys模块 pickle模块

    1.如果执行文件不在项目根目录下,需要添加项目根目录到sys.path中2.调用业务逻辑 2.logging模块 程序日志是 什么时间发生了什么事情,以及当时的情况 不是logging的话 记录日志的 ...

随机推荐

  1. 丝滑顺畅:使用CSS3获取60FPS动画

    原文链接: Smooth as Butter: Achieving 60 FPS Animations with CSS3 在移动端使用动画元素是很容易的. 如果你能遵循我们的这里的提示, 在移动端适 ...

  2. NET Core的分布式批处理框架

    NET Core的分布式批处理框架 Swift是什么 从文章的标题可知:此Swift非Apple那个Swift,只是考虑这个词的含义比较适合. Swift是一个基于.NET Core的分布式批处理框架 ...

  3. Unbuntu 自动重启MySQL

    上个月,通过Unbuntu搭建了WordPress,一切运行良好. UBUNTU搭建WORDPRESS-MYSQL-APACHE 但是,最近几天,不知道啥情况,MySQL偶尔会出现Stop:影响了bl ...

  4. Linux大棚版vimrc配置

    Linux大棚版vimrc配置—V2.0版本,如下: [shell] $cat .vimrc “== “Author :roc “Website:roclinux.cn “Version:2.0 “= ...

  5. 【转】 Oracle 中的一些重要V$ 动态性能视图,系统视图和表

    v$database:数据库的信息,如数据库名,创建时间等. v$instance 实例信息,如实例名,启动时间. v$parameter 参数信息,select * from v$parameter ...

  6. Easy UI 关联表的字段展示

    刚接触的easy UI ,发现展示关联表的字段的时候,卡住了 好一段时间,后来通过qq群询问,终于得到答案 实体Record public class Record:Base { public Gui ...

  7. Selenium3+webdriver学习笔记4(css方式元素定位)

    #!/usr/bin/env python# -*- coding:utf-8 -*- from selenium import webdriver import time,os # about:ad ...

  8. SPOJ SORTBIT Sorted bit squence (数位DP,入门)

    题意: 给出一个范围[m,n],按照二进制表示中的1的个数从小到大排序,若1的个数相同,则按照十进制大小排序.求排序后的第k个数.注意:m*n>=0. 思路: 也是看论文的.一开始也能想到是这种 ...

  9. 从程序猿到SAP产品经理,我是如何转型的?

    文章作者:Jason Xia(夏建军) Jerry: 今天的文章来自Jason Xia, 我的老同事,和我一样从2007年进入SAP成都研究院工作至今.这篇文章讲述了Jason是如何从一名SAP资深开 ...

  10. HTTP 错误 404.15 - Not Found请求筛选模块被配置为拒绝包含的查询字符串过长的请求

    web项目中,get方式传值是通过地址栏中的url参数进行传递的.除了浏览器对url长度的限制大小不一之外,出于安全考虑, IIS中对于URL中参数大小也是有限制的,默认为2048KB. 如果参数大于 ...