解决Python 写文件报错TypeError的问题


Posted in Python onOctober 23, 2020

处理上传的文件:

f1 = request.FILES['pic']
 fname = '%s/%s' % (settings.MEDIA_ROOT, f1.name)
 with open(fname, 'w') as pic:
  for c in f1.chunks():
  pic.write(c)

测试报错:

TypeError at /upload/

write() argument must be str, not bytes

把之前的打开语句修改为用二进制方式打开:

f1 = request.FILES['pic']
 fname = '%s/%s' % (settings.MEDIA_ROOT, f1.name)
 with open(fname, 'wb+') as pic:
  for c in f1.chunks():
  pic.write(c)

没有问题了~

补充知识:python3使用pickle读取文件提示TypeError或者UnicodeDecodeError的解决办法

python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

python2使用的是cPickle模块,而在python3中cPickle已经被取消,取而代之的是pickle模块。

开发过程中,我曾经遇到一个奇怪的问题,在读取一个文件时候,使用python2的如下方式:

import cPickle

train, test, dicts = cPickle.load(open("./dataset/atis.pkl"))

是可以正常读取文件的。

可是当换做python3的方式读取文件时候,如下:

import pickle

train, test, dicts = pickle.load(open("./dataset/atis.pkl"))

却获得了错误提示,提示信息如下:

Traceback (most recent call last):

File “Main.py”, line 4, in

train, test, dicts = pickle.load(open(“./dataset/atis.pkl”))

TypeError: ‘str' does not support the buffer interface

查询错误信息后得知解决办法 链接,应该指明用二进制方式打开文件,于是代码改为:

import pickle

train, test, dicts = pickle.load(open("./dataset/atis.pkl", "rb"))

可是这时候错误变成了:

Traceback (most recent call last):

File “Main.py”, line 4, in

train, test, dicts = pickle.load(open(“./dataset/atis.pkl”, “rb”))

UnicodeDecodeError: ‘ascii' codec can't decode byte 0xe8 in position 0: ordinal not in range(128)

于是再次求助万能的google,终于找到了解决办法 链接,我们需要告诉pickle:how to convert Python bytestring data to Python 3 strings,The default is to try and decode all string data as ASCII,所以代码改为:

import pickle

train, test, dicts = pickle.load(open("./dataset/atis.pkl", "rb"), encoding='iso-8859-1')

问题终于的到了解决。

以上这篇解决Python 写文件报错TypeError的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python群发邮件实例代码
Jan 03 Python
Python实现的一个找零钱的小程序代码分享
Aug 25 Python
python根据文件大小打log日志
Oct 09 Python
跟老齐学Python之模块的加载
Oct 24 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
在python中以相同顺序shuffle两个list的方法
Dec 13 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
Python切片操作去除字符串首尾的空格
Apr 22 Python
Numpy中对向量、矩阵的使用详解
Oct 29 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
Nov 07 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
python 利用Pyinstaller打包Web项目
Oct 23 #Python
python logging模块的使用详解
Oct 23 #Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 #Python
Python中免验证跳转到内容页的实例代码
Oct 23 #Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 #Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 #Python
详解python模块pychartdir安装及导入问题
Oct 22 #Python
You might like
PHP 文件上传功能实现代码
2009/06/24 PHP
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
php实现的漂亮分页方法
2014/04/17 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
php面向对象值单例模式
2016/05/03 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Saltstack快速入门简单汇总
2016/03/01 Python
wxPython之解决闪烁的问题
2018/01/15 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
python批量图片处理简单示例
2019/08/06 Python
django rest framework 过滤时间操作
2020/07/12 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
游戏商店:Eneba
2020/04/25 全球购物
车辆维修工自我评价怎么写
2013/09/20 职场文书
出国签证在职证明
2014/09/20 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
六一活动主持词
2015/06/30 职场文书
《夸父追日》教学反思
2016/02/20 职场文书