python中,使用 'ab'方式写入,使用'rb'读出,为啥无法读出全部内容?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中,使用 'ab'方式写入,使用'rb'读出,为啥无法读出全部内容?相关的知识,希望对你有一定的参考价值。
python中,将字典信息通过pickle文件存储,存储时使用 file('xxxx.pkl','ab')方式写入,读取时使用open('xxxx.pkl','rb')读取,为什么读取出来的文件内容总是字典第一个关键内容,没有读出xxxx.pkl中所有内容
open('xxxx.pkl','rb')这个是设定你要操作的文件,和以哪种方式来处理文件(读、写、只读等等)
读取内容是read方法,如:
fp = open('xxxx.pkl','rb')
data = fp.read()#读取所有,给参数的话就读指定大小的内容
data = fp.readline()#读取一行
data = fp.readlines()#按行读取整个文件追问
我是用.pkl文件存储的,并且是将字典存储进去的,如果我用readlines全部读出来,类型是列表,不是字典,而且读出的内容带有pickle文件特有的内容,并不是想要读取到的,使用pickle文件读取的时候我是用pickle.load(pick_file)读取的,只是显示第一条信息。
追答没用过pkl。但如果是字典的话可以这样处理
dict = "aa":"AA"
fp = open(file, 'w+')
fp.write(json.dumps(dict))
fp.close()
#读
fp = open(file)
data = fp.read()
fp.close()
data = json.loads(data)#这样处理后,data就是字典类型的了追问
我已经改为用txt存储了,虽然没法用pkl修改好,但还是很谢谢!
参考技术A 不要用open,用load(filename)python基础--文件处理
1.文件处理模式
r 以读的方式打开
w 以写的方式打开
a 以追加的方式打开
r+ 以读写方式打开
w+以读写方式打开
a+以读写方式打开
rb 以二进制读的方式打开
wb以二进制写的方式打开
ab以二进制追加的方式打开
rb+ 以二进制读写的方式打开
wb+以二进制读写的方式打开
ab+以二进制读写的方式打开
f=open(‘新建文本文件.txt‘,‘r‘,encoding=‘utf-8‘)
for line in f:
print(line)
f.close()
with open(‘新建文本文件.txt‘,‘r‘,encoding=‘utf-8‘)
for line in f:
print(line)
2.以w和a模式处理文件的区别
with open(‘新建文本文件.txt‘,‘w‘,encoding=‘utf-8‘)
with open(‘新建文本文件.txt‘,‘a‘,encoding=‘utf-8‘)
w模式会覆盖之前的文件,a模式不会覆盖之前的文件,而是追加写在文件末尾
以上是关于python中,使用 'ab'方式写入,使用'rb'读出,为啥无法读出全部内容?的主要内容,如果未能解决你的问题,请参考以下文章