day15-时间模块和文件操作

ruo时间模块和文件操作

1、datetime

1)获取当前时间
t1 = datetime.now()
2)创建datetime时间对象
t2 = datetime(2021, 10, 9)     -    2021-10-9  00:00:00
3)单独获取时间对象(时间对象.)
print(t2.month)   -
4)时间对象和字符串时间的转换

将字符串时间转换成时间对象:datetime.strptime(字符串时间,时间格式)

t4_str = '2021-10-10 16:29:10'
t4 = datetime.strptime(t4_str, '%Y-%m-%d %H:%M%S')
5)将时间对象转换成字符串时间

时间对象.strftime(时间格式)

t5 = datetime(2021, 10, 10, 16, 31, 30)
t5_str = t5.strftime(%Y年%m月%d日 %H时%M分%S秒)

2、timedelta - 对时间对象进行加减操作

t6 = datetime(2021, 10, 10, 16, 36, 20)
result = t6 + timedelta(days=1)

datetime无法将字符串时间转换成结构体时间,只能使用time

将字符串时间转换成时间戳

def func(t_str1, format='%Y-%m-%d %H:%M:%S'):
    import time
    t1 = time.strptime(t_str1, '%Y-%m-%d %H:%M:%S')
    t = time.mktime(t1)
    return t

3、文件操作

1> 数据持久化(数据本地化)
1)基本理论
程序中的数据默认是保存在运行内存中,保存在运行内存中的数据在程序运行结束后会被自动销毁。保存在硬盘、磁盘中的数据在程序结束之后不会销毁;数据持久化是将数据以文件为单位保存在硬盘中
2)常见数据持久化的工具
数据库文件(.db, .sqlite), excel文件, csv文件, plist文件(.plist), json文件(.json),txt文件(.txt)
2>文件操作(操作文件内容)

文件操作基本流程:1)打开文件 2)操作文件(读,写) 3)关闭文件

1) 打开文件
open(文件路径,打开方式,encoding=文件编码方式) - 以指定的方式打开指定文件,并且返回一个文件对象
a.文件路径 - 字符串:用来确定需要打开的是哪个文件
             绝对路径:在绝对路径前面必须加r,文件在计算机中的全路径,windows系统一般以某个盘的名字开头
             相对路径:1)用.表示当前目录
             		  2)用..表示当前目录的上层目录
             		  注:当前目录指的是当前代码文件所在的目录,相对路径中最前面的./可以省略
b.打开方式 - 字符串:决定打开文件后能读还是能写?决定读写的数据的类型是字符串还是二进制
1)第一组值:决定读写的(没有写的话默认值是r)
'r' - 只读
'w' - 只写:打开的时候会清空原文件
'a' - 只写:打开的时候不会清空原文件
2)第二组值:决定数据类型(没写的话默认是t)
'b' - 二进制
't' - 字符串(文本)
给打开方式赋值的时候是需要在两组值中每一组中选一个值进行组合:rt, rb, br, bw...
注意:如果以读的方式打开不存在的文件,程序会报错
如果以写的方式打开不存在的文件,程序不会报错并且会自动创建这个文件
3)encoding - 文本文件的编码方式,常用的值是'utf-8',如果打开文件的时候设置的编码方式和文件本身的编码不一致,就会报编码的错误,注意:如果是以带b的方式打开的文件,都不能给encoding赋值
2)文件读写操作
a.读 - 获取文件内容
文件对象.read() - 从读写位置开始,读到文件结尾(针对所有文件)
文件对象.readline() -  (只针对文本文件)从读写位置开始,读到一行的结尾

b.写 - 将内容写入文件中
文件对象.write(内容)  -  将指定内容写入文件中
# 增加内容
f = open('files/demo1.txt', 'a')
f.write('\naaa')
# 插入和修改操作:先读后写
f = open('files/demo1.txt')
result = f.read()
lines = result.split('\n')
lines.insert(2, '000')  # 在位置2处插入'000'
lines[0] = 'asdf'   # 修改某一行的内容
lines.pop(-1)    # 删除原文件的最后一行
write_date = '\n'.join(lines)
f = open('files/demo1.txt', 'w')
f.write(write_date)
3)关闭文件
文件对象.close()

4、数据持久化方法

第一步:确定需要持久化的数据
第二步:创建文件保存数据(确定需要持久化的数据的初始值)
第三步:程序中需要数据的时候从文件中读数据
第四步:数据如果发生改变,要将最新的数据写入文件

打印程序执行的次数

with open('files/demo1.txt') as f:
    count = int(f.read())
count += 1
print(count)
with open('files/demo1.txt') as f:
    f.write(str(count))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值