江湖散人 发表于 2021-4-2 20:30:51

文件的写入问题

A={'a':1,'b':2}
B=open('zidan.txt','w')
import pickle
pickle.dump(A,B)
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
    pickle.dump(A,B)
TypeError: write() argument must be str, not bytes
产生了报错,什么原因啊?

不能懒 发表于 2021-4-2 20:33:49


A={'a':1,'b':2}
B=open('zidan.txt','wb')
import pickle
pickle.dump(A,B)

不能懒 发表于 2021-4-2 20:34:35

这个函数要求读写文件以二进制读写

jackz007 发表于 2021-4-2 20:37:55

B=open('zidan.txt','w')
      改为
B=open('zidan.txt','wb')

江湖散人 发表于 2021-4-2 21:06:11

不能懒 发表于 2021-4-2 20:33



A={'a':1,'b':2}
B=open('zidan.txt','wb')
import pickle
pickle.dump(A,B)
B.close()
B=open('data.txt')
M=pickle.load(B)
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
    N=pickle.load(M)
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence
又开始报错了,这又是怎么回事啊?

江湖散人 发表于 2021-4-2 21:06:51

jackz007 发表于 2021-4-2 20:37
改为

A={'a':1,'b':2}
B=open('zidan.txt','wb')
import pickle
pickle.dump(A,B)
B.close()
B=open('data.txt')
M=pickle.load(B)
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
    N=pickle.load(M)
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence
又开始报错了,这又是怎么回事啊?

jackz007 发表于 2021-4-2 21:25:40

江湖散人 发表于 2021-4-2 21:06
A={'a':1,'b':2}
B=open('zidan.txt','wb')
import pickle


B=open('data.txt')
      改为
B=open('data.txt' , 'rb')

江湖散人 发表于 2021-4-2 22:50:29

jackz007 发表于 2021-4-2 21:25
改为

我改了,还是不行{:5_94:}

jackz007 发表于 2021-4-2 22:59:08

江湖散人 发表于 2021-4-2 22:50
我改了,还是不行

      是吗?
      看看我这里的
>>> import pickle
>>> A={'a':1,'b':2}
>>> B=open('zidan.txt','wb')
>>> pickle.dump(A,B)
>>> B.close()
>>> B=open('zidan.txt' , 'rb')
>>> M=pickle.load(B)
>>> M
{'a': 1, 'b': 2}
>>>

江湖散人 发表于 2021-4-2 23:17:16

jackz007 发表于 2021-4-2 22:59
是吗?
      看看我这里的

我为什么执行的时候就出题了呢,奇怪啊。
谢谢啊
页: [1]
查看完整版本: 文件的写入问题