解决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 anaconda 安装 环境变量 升级 以及特殊库安装的方法
Jun 21 Python
python+tkinter编写电脑桌面放大镜程序实例代码
Jan 16 Python
Python爬虫设置代理IP(图文)
Dec 23 Python
Python中@property的理解和使用示例
Jun 11 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
python爬虫刷访问量 2019 7月
Aug 01 Python
Python实现快速排序的方法详解
Oct 25 Python
python字符串常用方法及文件简单读写的操作方法
Mar 04 Python
python os模块在系统管理中的应用
Jun 22 Python
python 模块重载的五种方法
Apr 24 Python
python关于集合的知识案例详解
May 30 Python
Python 一键获取电脑浏览器的账号密码
May 11 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
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
python编程使用协程并发的优缺点
2018/09/20 Python
Python3数字求和的实例
2019/02/19 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
Django视图扩展类知识点详解
2019/10/25 Python
Python面向对象封装操作案例详解
2019/12/31 Python
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
行政总经理岗位职责
2013/12/05 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
未婚证明书模板
2014/10/08 职场文书
给老婆的检讨书
2015/01/27 职场文书
邀请函怎么写
2015/01/30 职场文书
2016大学军训通讯稿
2015/11/25 职场文书