Python读取文件编码及内容

最近做一个项目,需要读取文件内容,但是文件的编码方式有可能都不一样。有的使用GBK,有的使用UTF8。所以在不正确读取的时候会出现如下错误:

UnicodeDecodeError: 'gbk' codec can't decode byte

而且当你使用rb模式读取文件时候,返回的结果通过django返回的json会出现下面错误:

TypeError: b'\xbc\x8c\xe6\x9c\xaa\xe6\x9d\xa5' is not JSON serializable

总之就是编码不对,所以要先能识别文件的编码方式,然后根据此编码方式进行对文件编码,最后返回文件内容。

解决方法如下:

with open("your_file", 'rb') as fp:file_data = fp.read()result = chardet.detect(file_data)file_content = file_data.decode(encoding=result['encoding'])

注: chardet是第一个第三方库,你需要自己使用pip进行安装。

@完

转载于:https://www.cnblogs.com/zhangqunshi/p/7055258.html

Python读取文件编码及内容相关推荐

  1. python读取文件多行内容-Python读取文件、大文件和指定行内容的几种方法

    在使用python处理文本的时候,经常会需要读取文件的内容.如果文件比较小,那么直接使用open文件对象打开文件,再通过read()方法最为方便,这种方法就是把文件内容读出来后放到内存变量. read ...

  2. python读取文件编码报错解决

    项目场景: python读取文件报错解决 问题一:UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 问题二:Unic ...

  3. python读取文件多行内容-使用python读取.text文件特定行的数据方法

    如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...

  4. python读取文件多行内容-Python逐行读取文件内容的方法总结

    Python四种逐行读取文件内容的方法 下面四种Python逐行读取文件内容的方法, 分析了各种方法的优缺点及应用场景,以下代码在python3中测试通过, python2中运行部分代码已注释,稍加修 ...

  5. python读取文件多行内容-python 逐行读取文件的几种方法

    Python四种逐行读取文件内容的方法 下面四种Python逐行读取文件内容的方法, 分析了各种方法的优缺点及应用场景,以下代码在python3中测试通过, python2中运行部分代码已注释,稍加修 ...

  6. python读取文件中的内容_python 读取文件夹中的文件内容

    看thinking in java的时候发现有个题的答案不确定结果, 于是下载答案看下,结果是 这个样子的,这样要怎么才能找到相对应的答案?于是我就着手写了一个快速遍历的脚本(我这里只是单纯的找了出来 ...

  7. python读取文件中的内容并输出_Python从文件中读取字符串并进行解析

    Python是一门简单易学的编程语言,也是目前相当流行的一门编程语言,它在各种场景都有着不错的表现咱们今天就来谈谈Python常见的几种字符串处理方式. 首先,使用的测试数据为ip.txt,文件内容为 ...

  8. python读取文件编码错误_关于python 读取txt文件出现编码问题:

    python 读取txt文件出现编码问题:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 5: invalid ...

  9. python读取文件编码错误_Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案)...

    很多情况下我们是这样读取文本文件的: with open(r'F:\.Python Project\spidertest1\test\pdd凉席.txt', 'r') as f: text = f.r ...

最新文章

  1. Image Generation
  2. 服务器双网卡冗余备份技术的实现
  3. 字符串对比 (STl强制转换字符串)
  4. SVM 透彻理解与分析
  5. Html5实践之EventSource
  6. flask sql外键使用_如何在SQL中使用外键?
  7. Java每次输入一个字符+高精度取整计算(记洛谷P2394题WA+TLE+RE的经历,Java语言描述)
  8. 防火墙和路由器的滑铁卢:NAT Slipstreaming攻击
  9. Array 的方法们 和 object 那些让人纠结的问题 ......
  10. 南京计算机徐宪忠,nakaga
  11. 【Java开发 | 工具使用】JAVA使用exe4j打包项目为exe文件
  12. iPhone手机 app加密和换图标
  13. 第39级台阶回溯算法c语言,五大经典算法之回溯法 - osc_9ipdey7e的个人空间 - OSCHINA - 中文开源技术交流社区...
  14. 当ChatGPT遇上StableDiffusion ChatGPT指导StableDiffusion绘画
  15. 卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具Motrix!
  16. 【第一章】浅谈游戏作弊类型与核心原理
  17. 【数据库】01_sql语句
  18. [转]Flash与Flex3结合学习心得体会_Rich.Lee的网路历程_百度空间(转载)
  19. STM32 GPIO 详解
  20. James Charles || 一夜掉粉三百万,油管美妆区顶级流量的覆灭

热门文章

  1. GIS可视化——属性图
  2. IE9开始支持SVG格式(VML终结)
  3. liferay中使用自己的数据库
  4. Spring从菜鸟到高手(二)AOP的真正实现
  5. 《Java并发编程实践》学习笔记之一:基础知识
  6. HP-UX Root密码被锁定的非关机情况下解决方案
  7. 新闻媒体的“社会热点事件”催发微博客的诞生
  8. C# 读取 Access
  9. 一次性掌握ES6/ES7异步处理
  10. vue 手写一个时间选择器