千锋教育python2104期总结

第十三次总结: 常用系统模块和文件操作

目录

  1. time模块
  2. datetime模块
  3. hashlib模块
  4. 文件操作
  5. 读写操作
  6. 数据存储操作
  7. 作业

正文

1.time模块

1.time.time() - 获取当前时间(时间戳)

2.time.localtime() - 获取当前时间(结构体时间)
time.localtime(时间戳) - 将时间戳转化位结构体时间

3.time.sleep(时间) - 程序休眠指定时间,单位秒

4.time.strftime(时间格式,结构体时间) - 结构体时间转字符串时间

5.time.strptime(字符串时间,时间格式) - 将字符串时间转化成结构体时间

6.6.time.mktime(结构体时间) - 将结构体时间转换成时间戳

时间戳 - 用指定时间到1970年1月1日0时0分0秒(格林威治时间)的时间差(单位是秒)
注:格林威治时间和北京时间有8个小时的时差
用时间戳存时间更加节约内存(时间戳需要4字节,用字符串需要十多个字节),加密也很方便

时间占位符
%Y - 年
%m - 月
%d - 日
%H - 小时
%M - 分钟
%S - 秒
%p - AM,PM(上午,下午)
%a - 星期缩写
%A - 星期全拼
%b - 月份英文缩写
%B - 月份全拼

#1.time.time()
print(time.time())#2.time.localtime(时间戳)
print(time.localtime(time.time()))#4.time.strftime(时间格式,结构体时间)
time1=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
print(time1)#5.time.strptime(字符串时间,时间格式)
t2=time.strptime('2021.5.15','%Y.%m.%d')
print(t2)#6.time.mktime(结构体时间)
print(time.mktime(t2))

2.datetime模块

1.datetime类型 - 处理包含年月日时分秒的时间
#datetime类型显示为2021-07-30 00:00:00
#1)创建datetime时间对象

t1 = datetime(2020,10,2)
print(t1)   # 2020-10-02 00:00:00
t2 = datetime(2020,2,2,2,56,23)
print(t2)   # 2020-02-02 02:56:23

#2)获取时间属性
#时间对象.year,时间对象.month,…

print(t1.year)  # 2020

#3)获取当前时间

t3 = datetime.now()
print(t3)   # 2021-07-30 11:38:17.265019

#4)将datetime转换为结构体时间

t4 = t3.timetuple()
print(t4)   # time.struct_time(tm_year=2021, tm_mon=7, tm_mday=30, tm_hour=11, tm_min=40, tm_sec=2, tm_wday=4, tm_yday=211, tm_isdst=-1)

#5)将datetime转换为字符串时间

t5 = t3.strftime('%Y.%m.%d')
print(t5)   # 2021.07.30

#6)将字符串时间转成datetime

str1='2000-2-2'
print(datetime.strptime(t5,'%Y.%m.%d')) #2021-07-30 00:00:00

2.timedelta - 用于时间的加减操作

tt1=datetime(2000,1,1)
tt2=tt1+timedelta(days=25)
tt3=tt1+timedelta(hours=15,minutes=56)
print(tt1,tt2,tt3)  # 2000-01-01 00:00:00 2000-01-26 00:00:00 2000-01-01 15:56:00

3.hashlib模块

hashlib模块 - 用于生成数据的hash摘要

hash加密算法主要有:md5和shaxxx
1.hash加密的特点:
a.不可逆(通过原数据加密后(产生的摘要)无法还原)
b.相同的数据通过相同的算法产生摘要(密文)是一样的
c.不同大小的数据在使用相同的算法产生的摘要的长度一致(可以用来验真数据完整性)

2.使用hashlib产生数据的摘要

python二进制数据类型 - bytes
字符串和bytes的相互转换

1)str -> bytes
方法1.bytes(str,‘utf-8’)
方法2.b’str’
方法3.str.encode()

2)bytes -> str
方法1.str(bytes,‘utf-8’)
方法2.bytes.decode()

“”"

#1.创建hash对象

hash1 = hashlib.md5()

#2.添加数据
#hash对象.update(二进制)

qw='sb'
wq='dsb'
hash1.update(qw.encode())

#获取摘要

re = hash1.hexdigest()
print('sb的摘要',re)   # 26148d621ef74844918af182d63976b6
print('dsb的摘要',re)   # f4f6172eb26581952a70d7199bfd2ddb

4.文件操作

1.数据的存储
“”"
程序中保存的数据默认是保存在运行内存中,运行内存中的数据在程序结束的时候都会被
释放,如果希望程序运行过程中产生的数据在程序结束后不被销毁,就需要将数据存储到磁盘中

将数据存储到磁盘的过程叫做数据持久化,数据本地化
数据持久化的基本原理 - 将数据通过文件存储到磁盘中
“”"

2.文件操作(操作文件内容)
“”"
文件操作主要解决两个问题:a.怎么将程序中的数据通过文件存储到磁盘中 b.怎么在程序中使用保存到文件的数据
“”"

3.文件操作基本步骤
“”"
1.打开文件
open(文件路径,读写模式,encoding=文件编码方式) - 以指定方式打开指定文件,返回文件对象

1)文件路径 - 文件在计算机中的位置信息,以字符串的形式提供值
a.绝对路径:文件在计算机中全部路径
b.相对路径:
. - 表示当前目录(当前代码文件所在的目录),
./可以省略
… - 表示当前目录的上层目录

2)读写模式 - 设置打开文件后支持读操作还是写操作,以及设置操作数据类型是字符串还是二进制
第一组值:
r - 只读(默认为r)
w - 只写;先把原文件清空,再写
a - 只写:保留原文件,直接在原数据之后跟写
第二组:
t - 数据类型是字符串(默认为t)
b - 数据类型是二进制
注意:如果是文本文件可以用t或者b打开,如果是二进制文件(如图片,视频,pdf)必须用b

3)encoding - 文件编码方式(打开的编码方式和文件的编码方式一致)
以b的方式打开文件的是encoding不能赋值

2.读文件,写文件
文件对象.read()
文件对象.write(数据)

3.文件关闭
文件对象.close()
“”"

#打开文件

t=open(r't1.txt','rt')

#读写模式

q=t.read()
print(type(q))  #<class 'str'>
t.close()tupian=open(r'mi.jpg','rb')
m=tupian.read()
print(m)
tupian.close()

5.读写操作

1.读操作
“”"
1)文件对象.read() - 从读写位置读到尾(默认读写位置是文件开头)
文件对象.seek():设置读写位置

文件对象.readline() - 从读写位置开始读到一行的结尾

文件对象.readlines() - 一行一行的读完,然后返回列表
“”"

2.写操作
“”"
1)文件对象.write(数据)
2)文件对象.writeline([数据])

6.数据持久化

数据持久化的基本步骤

“”"
1.确定需要持久化的数据
2.创建文件保存数据初始化
3.在程序中需要这个数据时去读取
4.如果数据发生改变,要将最新数据写回文件
“”"

练习:添加学生,并且在添加完成后显示所有学生信息(只需要学生名字)
“”"
请输入学生姓名: 小明
小明

while True:q=input('请输入学生信息')if q!='q':qw = open('t1.txt', 'a')qw.write(q+' ')qw.close()qw = open('t1.txt', 'r')print(qw.read())qw.close()else:break

7.作业

XX登录系统

zhanghaoxx = {}

def write_xx(a,b):
q=open(‘t1.txt’,‘a’)
zhanghaoxx[a]=b
q.write(str(zhanghaoxx))
q.close()
def shuru_xx():
a = input(‘请输入账号:’)
b = input(‘请输入密码:’)
return a,b

while True:
wel = print(‘欢迎来到XX管理系统==\n’)
print(‘1.登录\n2.注册\n*3.退出\n’)
chaozhuo=int(input(‘请选择操作:’))
if chaozhuo not in [1,2,3]:
print(‘操作失败!请选择正确操作\n’)
elif chaozhuo1:#登录
a,b=shuru_xx()
q = open(‘t1.txt’, ‘r’)
zx=q.read()
if zx’’:
print(‘登录失败,该账户尚未注册’)
else:
dict1 = eval(zx)
for x in dict1:
if a == x and b==dict1[x]:
print(‘登录成功’)
break
elif a!=x:
print(‘登录失败,该账户尚未注册\n’)
break
else:
print(‘密码错误,请重试’)
q.close()
break

elif chaozhuo==2:#注册a,b=shuru_xx()q = open('t1.txt', 'r')zx=q.read()q.close()if zx=='':write_xx(a, b)print('注册成功')else:dict1 =dict2= eval(zx)list1 = []for x in dict1:list1.append(x)if a in list1:print('注册失败,该账户已被注册')else:q = open('t1.txt', 'w')dict2[a] = bq.write(str(dict2))q.close()print('注册成功')elif chaozhuo==3:#退出break

千锋教育python2104期总结day14相关推荐

  1. 千锋教育python2104期总结day2

    千锋教育python2104期总结day2 第一次总结: 基础语法和变量 目录 更改基础设置, 写出第一句代码 基础语法 输入和输出函数 变量 正文 1. 更改基础设置,写出第一句代码 1)设置pyc ...

  2. 千锋教育python2104期总结day5

    千锋教育python2104期总结 第四次总结: 循环练习和语法 目录 1.复习 2.认识列表 3.添加元素 4.第一周作业(零基础) 5.周末作业-循环练习题 正文 1. 复习 for循环 for ...

  3. 千锋教育python2104期总结day15

    千锋教育python2104期总结 第十四次总结: json和异常 目录 文件操作补充 json数据 异常模块 作业 正文 1.文件操作补充 打开不存在的文件 """ 如 ...

  4. 千锋教育python2104期总结day11

    千锋教育python2104期总结 第十次总结: 函数基础 目录 定义函数 调用函数 函数的参数 函数的返回值 作业 正文 1.定义函数 认识函数 1)什么是函数:函数就是实现某一特定功能的代码的封装 ...

  5. 千锋教育python2104期总结day20

    千锋教育python2104期总结 第十九次总结: 自动化办公2 目录 excel文件的读操作 excel文件的写操作 csv文件操作 pdf文件操作 添加水印 创建水印文件 正文 1.excel文件 ...

  6. 千锋教育python2104期总结day13

    千锋教育python2104期总结 第十二次总结:迭代器生成器和模块 目录 迭代器 生成器 模块 包的使用 正文 1.迭代器 什么是迭代器(iter) 迭代器是容器型数据类型,可以同时保存多个数据:可 ...

  7. 千锋教育python2104期总结day4

    千锋教育python2104期总结day4 第三次总结: 循环 目录 1.for循环 2.while 3.循环关键字 4.作业 正文 1. for循环 循环 - 让代码重复执行(代码写一遍,运行执行多 ...

  8. 千锋教育python2104期总结day17

    千锋教育python2104期总结 第十六次总结: 面向对象编程基础 目录 编程思想 类和对象 对象方法 init方法 属性 方法 作业 正文 1.编程思想 编程思想:面向过程编程(穷人思想).函数式 ...

  9. 千锋教育python2104期总结day6

    千锋教育python2104期总结 第一次总结: 基础语法和变量 目录 复习 列表切片 删和改 列表相关操作 相关函数和方法 作业 正文 1. 复习 1.列表(list) 容器:[元素1, 元素2, ...

最新文章

  1. What Are Words(一诺千金)
  2. 全息归约,全息算法。
  3. navicat导数据速度_华为廊坊云数据中心二期1~3期主楼聚氨脂、聚脲防水隔热总承包工程...
  4. day 29 socketsetserver 模块
  5. Canvas知识点汇总
  6. php博客添加live2d,在博客中增加自己的live2d纸片人模型方法
  7. 应用c语言编辑画图程序,应用C语言编辑画图程序
  8. 数据结构(六)霍夫曼树与编码
  9. datetime mysql 查询_mysql数据库时间类型datetime、bigint、timestamp的查询效率比较
  10. 【BZOJ3227】红黑树,打表找规律/DP
  11. JAVA:二进制和十进制互转
  12. CentOS安装lynis安全漏洞扫描工具
  13. Arcgis自带数据地址
  14. php中dump是什么文件怎么打开,Win8/Win10 dump文件怎么打开?dump文件分析工具下载及使用教程...
  15. 分站活动丨“香港科大商学院-黑瞳科技”2020【人工智能】百万奖金国际创业大赛--上海站+成都站宣讲会...
  16. 模式识别应用于哪些领域,模式识别技术的发展是大势所趋
  17. C++11线程中的几种锁
  18. html添加到购物车飞入动画效果,加入购物车的动画效果
  19. 2022年5月信息系统项目管理师3科真题和答案解析 —— 后感
  20. window10系统安装梅雁EDMS(MAYAN EDMS)

热门文章

  1. XCTF-Normal_RSA 萌新版解题WriteUp
  2. 思维导图(XMind ZEN)安装教程
  3. 地下水位监测预警方案 | 助力城市排水信息化
  4. AI遮天传 ML/DL-感知机
  5. 辽宁省大连市谷歌高清卫星地图下载
  6. Kubernetes:开源 K8s 管理工具 Rancher 认知
  7. Word2016查找和替换通配符(完全版)
  8. 服务器和电脑主机的区别
  9. 计算机网络——应用层之电子邮件(E-mail)
  10. C语言开发单片机为什么大多数都采用全局变量的形式?