Python错误TypeError: write() argument must be str, not bytes

2016-07-03 20:51:25

今天使用Python中的pickle存储的时候出现了以下错误:

TypeError: write() argument must be str, not bytes

网上搜索才发现原来是文件打开的方式有问题。

之前文件打开的语句是:

f=open("list.pkl","w+")

然后使用二进制方式打开就没有这个问题:

f=open("list_account.pkl","wb+")

产生问题的原因是因为pickle存储方式默认是二进制方式

时间: 2024-10-12 13:00:57

Python错误TypeError: write() argument must be str, not bytes的相关文章

Python 读写文件 中文乱码 错误TypeError: write() argument must be str, not bytes+

今天写上传文件代码,如下 def uploadHandle(request): pic1=request.FILES['pic1'] picName=os.path.join(settings.MEDIA_ROOT,pic1.name) with open(picName,'w') as pic: for c in pic1.chunks(): pic.write(c) return HttpResponse(picName) 出现TypeError: write() argument must

TypeError: write() argument must be str, not bytes报错

TypeError: write() argument must be str, not bytes 之前文件打开的语句是: with open('C:/result.pk','w') as fp: 然后使用二进制方式打开就没有这个问题: with open('C:/result.pk','wb+') as fp: 产生问题的原因是因为存储方式默认是二进制方式. 原文地址:https://www.cnblogs.com/cheng10/p/10107838.html

TypeError: write() argument must be str, not bytes

w文件打开以 '二进制'  方式: with open('teacher.html','wb+') as f: f.write(response.body) 要写入"中文",防止乱码: fo = open("temp.txt", "wb+") str = '中文' str = str.encode('utf-8') fo.write(str) fo.close()

Python_异常:TypeError: write() argument must be str, not list

文件写入操作时,报错:TypeError: write() argument must be str, not list 原因:python写入的内容要是字符串类型的 上代码: fp = open("a.txt","w")fp.write([1,2,3])fp.close() >>> fp = open("a.txt","w") >>> fp.write([1,2,3]) Traceback

Python2.7 在使用BSTestRunner.py时报错TypeError: unicode argument expected, got 'str'

python3往这个库中加入了一些新的内容,使得该库在Python2.7中报错. 解决方法是将导入语句 from io import StringIO as StringIO 更换为: from io import BytesIO as StringIO   Python2.7 在使用BSTestRunner.py时报错TypeError: unicode argument expected, got 'str'

Python错误:TypeError:'str' does not support the buffer interface

在socket套接字模块进行send和recv方法时出现这种问题,是因为Python3.x和Python2.x版本变化,In python 3, bytes strings and unicodestrings are now two different types. 相互之间需要进行转换decode()和encode(). send()需要的参数为bytes类型,因此需要对str进行encode() recv()返回的是bytes类型,因此我们需要对返回的bytes进行decode()转换为s

【爬坑】Python 3.6 在 Socket 编程时出现类型错误 TypeError: a bytes-like object is required, not 'str'

1. 问题描述 Python 3.6 在 Socket 编程时出现错误如下 Traceback (most recent call last): File "F:/share/IdeaProjects/test/mypython/test/test10_tcpclient.py", line 17, in <module> sock.send(str) TypeError: a bytes-like object is required, not 'str' Process

Python Socket TypeError: a bytes-like object is required, not &#39;str&#39; 错误提示

在学习socket编程时,遇到代码返回如下错误: TypeError: a bytes-like object is required, not 'str' 发现这里python3.5和Python2.7在套接字返回值解码上有区别. 首先可以明确,在python3中默认的编码方式是unicode.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节),因此 utf-16就是现在最常用的unicode版本. 不过考虑到utf8省空间,在文件里存的

python TypeError: must be str, not bytes错误

1 TypeError: must be str, not bytes错误: 2 3 解答: 4 写文件处 f=open(filename, 'w')应该写为 open(filename, 'wb') 5 读文件时 f=open(filename,'rb') UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence解决方法同上