目录

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 datetime

now = 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 +=500
    if count == 3000:
    print(f'恭喜你获得1000元大奖')
    else:
    if res ==1000:
    print('再来一次!')
    else:
    print(f'恭喜你获得{res}')

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

```python
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)

最新文章

  1. 【SAP业务模式】之ICS(七):IDOC配置
  2. [Hadoop] Hadoop学习历程 [持续更新中…]
  3. WIN 下的超动态菜单(三)代码
  4. 搭建高可用MongoDB集群(一):配置MongoDB
  5. 单片网络接口芯片W5100的原理与应用
  6. JM8.6学习
  7. NSException
  8. Android IOS WebRTC 音视频开发总结(五一)-- 降噪基本原理
  9. JS中的DOM与BOM
  10. Asp.Net 之 网页快照
  11. Safecracker(搜索)
  12. 关于数组和集合的冒泡排序中容易出现的IndexOutOfBoundsException
  13. 2017百度web前端实习生在线笔试题
  14. PHP扩展开发 第一课 为什么要写扩展及hello world
  15. MongoDb进阶实践之三 Mongodb基本命令详解
  16. Linux下 USB设备驱动分析(原创)
  17. final,finally,finalize有什么区别?String, StringBuffer, StringBuilder有什么区别?Exception和Error有什么区别?
  18. meta中minimal-ui属性
  19. [笔记] FMX 在 iOS 平台主窗体 DoubleTap 手势,要慎用!
  20. config之安全(用户认证)

热门文章

  1. 【bzoj4567】[Scoi2016]背单词
  2. NET Core容器
  3. SSM Spring SpringMVC Mybatis框架整合Java配置完整版
  4. springcloud-Netflix创建服务消费者
  5. 关于C#解析shp文件
  6. Redis list(列表)
  7. springBoot jpa 表单关联查询
  8. ajax在购物车中的应用
  9. Android 虚拟导航挡住应用底部解决方案(屏幕底部的三个按键)
  10. Docker搭建