今天写上传文件代码,如下 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 之前文件打开的语句是: with open('C:/result.pk','w') as fp: 然后使用二进制方式打开就没有这个问题: with open('C:/result.pk','wb+') as fp: 产生问题的原因是因为存储方式默认是二进制方式.…
Python2随机写入二进制文件: with open('/python2/random.bin','w') as f: f.write(os.urandom(10)) 但使用Python3会报错: TypeError:must be str, not bytes 原因为:Python3给open函数添加了名为encoding的新参数,而这个新参数的默认值却是'utf-8'.这样在文件句柄上进行read和write操作时,系统就要求开发者必须传入包含Unicode字符的实例,而不接受包含二进制数…