python 文件(2)

tell函数:用来显示当前文件读取指针的位置

#tell的返回数字单位是byte
#read是以字符为单位
text.txt文件内容如下:
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒催肠三杯醉,寻香惊梦五更寒。
钗头凤斜雂有泪,荼蘼化了我无缘。
小楼寂寞心宇月,也难如勾也难圆。

with open(r'text.txt', 'r',encoding='UTF-8') as f:
    strchar = f.read(2)
    pos = f.tell()
    while strchar:
        print(pos)
        print(strchar)

        strchar = f.read(2)
        pos = f.tell()

6
伤情
12
最是
18
晚凉
24
天,
30
憔悴
36
斯人
42
不堪
48
怜。
53


59
酒催
65
肠三
71
杯醉
77
,寻
83
香惊
89
梦五
95
更寒
100

106
钗头
112
凤斜
118
雂有
124
泪,
130
荼蘼
136
化了
142
我无
148
缘。
153


159
楼寂
165
寞心
171
宇月
177
,也
183
难如
189
勾也
195
难圆
198

文件的写操作

-write(str):把字符串写入文件
-writelines(str):把字符串按行写入文件,参数可以是list格式
-区别:
write函数参数只能是字符串
writelines参数可以是字符串,也可以是字符序列

#weite案例
#向text文件中追加诗句
with open(r'text.txt', 'a',encoding='UTF-8') as f:
    f.write('\n')
    f.write('百万大军困襄阳,外无救兵内无良。\n有朝一日城破了,哭爹的哭爹,喊娘的喊娘。')

伤情最是晚凉天,憔悴斯人不堪怜。
邀酒催肠三杯醉,寻香惊梦五更寒。
钗头凤斜雂有泪,荼蘼化了我无缘。
小楼寂寞心宇月,也难如勾也难圆。

百万大军困襄阳,外无救兵内无良。
有朝一日城破了,哭爹的哭爹,喊娘的喊娘。

持久化-pickle

-可以保存一些结构化的东西
-序列化:把程序运行中的信息保存在磁盘上
-反序列化:序列化的你过程
-pickle.dump:序列化模块
-pickle.load:反序列化

import pickle
with open(r'text.txt', 'wb') as f:
    age=19
    pickle.dump(age,f)
with open(r'text.txt','rb') as f:
    age2=pickle.load(f)
    print(age2)

19

持久化-shelve

-类似字典,用kv对数据保存,存取方式也跟字典类似

import shelve
shv=shelve.open(r'shv.bd')
shv['one']=100
shv['two']=80
shv['three']=60
shv.close()
shv=shelve.open(r'shv.bd')
try:
    print(shv['one'])
    print(shv['two'])
except Exception as e:
    print('None')
finally:
    shv.close()

100
80

shelve补充:

不支持多个应用并行写入:open的时候可以使用flag=r
写回问题:强制写回writeback=True
#shelve使用with管理上下文环境

with shelve.open(r"shv.db",writeback=True) as shv:
    k=shv['one']
    print(k)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值