python文本文件读取失败_Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案)...
很多情况下我们是这样读取文本文件的:
with open(r'F:\.Python Project\spidertest1\test\pdd凉席.txt', 'r') as f:
text = f.read()
但是如果该文本文件是gbk格式的,那么将会报以下错误:
Traceback (most recent call last):
File "F:/.Python Project/spidertest1/test/MyTest4.py", line 14, in
text = f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 1129: illegal multibyte sequence
查了下资料说是添加encoding='utf-8',这个参数:
with open(r'F:\.Python Project\spidertest1\test\pdd凉席.txt', 'r', encoding='utf-8') as f:
text = f.read()
但是这种方式治标不治本,原因就在于你根本不知道用户打开的是utf-8的文本文件还是gbk的或者是Unicode的
所以只能采取以下这种办法:
open('x:xxxx','rb'):
第二个参数为:'rb' 以二进制格式打开一个文件用于只读。这就避免了指定了encoding与文件实际编码不匹配而报错的问题
import chardet
def check_code(text):
adchar = chardet.detect(text)
# 由于windows系统的编码有可能是Windows-1254,打印出来后还是乱码,所以不直接用adchar['encoding']编码
#if adchar['encoding'] is not None:
# true_text = text.decode(adchar['encoding'], "ignore")
if adchar['encoding'] == 'gbk' or adchar['encoding'] == 'GBK' or adchar['encoding'] == 'GB2312':
true_text = text.decode('GB2312', "ignore")
else:
true_text = text.decode('utf-8', "ignore")
return true_text
def read_file_text(file_url):
# 第二个参数为:'rb' 以二进制格式打开一个文件用于只读。这就避免了指定了encoding与文件实际编码不匹配而报错的问题
with open(file_url, 'rb') as f:
file_text = f.read()
file_text = check_code(file_text)
return file_text
python文本文件读取失败_Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案)...相关推荐
- python实现规则引擎_python – 如何在不使用eval()或exec()的情况下创建规则引擎?...
我的数据库中有一个简单的规则/条件表,用于为我们的某个系统生成警报.我想创建规则引擎或特定于域的语言. 存储在此表中的简单规则是..(省略此处的关系) if temp > 40 send ema ...
- Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案)
Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案) 参考文章: (1)Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案) (2)https://ww ...
- python中文件读取失败_Python文件读取与异常
文件和异常 with open("text.txt") as p:读取文件目录下的text.txt文件并返回文件对象存储在p变量 text=p.read()读取p变量的内容 存储到 ...
- python requests下载图片_python读取图片大小Python Requests模块快速入门
requests是python的一个HTTP客户端库,跟urllib,urllib2类似.它比 urllib 更加方便,可以节约我们大量的工作,它比 urllib 更加 Pythoner. 安装 Re ...
- python朋友圈头像_Python读取微信好友头像,拼成祝福语九宫格
今天有位老哥过生日,结合着微信头像和点阵字,搞了个头像拼字的代码,朋友圈九宫格效果如下: 其中,每个字都是16*16的点阵,点阵中每个点可以拆解为4个好友头像图片: 代码中汉字文本可以自定义输入,头像 ...
- python修改yaml文件_Python读取yaml文件的详细教程
yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文 ...
- python读视频文件_python读取和保存视频文件
如何用python实现视频关键帧提取并保存为图片?也许你会觉得对小编多做一点事你会觉得你很爽,可是在小编看来这是不屑的 import cv2vc = cv2.VideoCapture('Test.av ...
- python远程文件管理系统_python 读取远程服务器文件
几个提高工作效率的Python内置小工具 在这篇文章里,我们将会介绍4个Python解释器自身提供的小工具.这些小工具在笔者的日常工作中经常用到,减少了各种时间的浪费,然而,却很容易被大家忽略.每当有 ...
- python unicode码转换_python实现unicode转中文及转换默认编码的方法
本文实例讲述了python实现unicode转中文及转换默认编码的方法.分享给大家供大家参考,具体如下: 一.在爬虫抓取网页信息时常需要将类似"\u4eba\u751f\u82e6\u77e ...
最新文章
- 变速更顺滑_1.6TGDI直喷发动机+7速湿式双离合自动变速箱,表现会如何?
- TowerKing随笔汇总集
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
- 专题 11 IPC之管道
- C# delegate and event
- 华为荣耀畅玩7c计算机在那,华为荣耀畅玩7C
- C++对象内存模型学习
- USTC English Club Note20171020(3)
- leetcode474. 一和零(动态规划)
- 实战案例丨ModelArts在数据标注、数据过滤上的应用技巧:自动分组
- 访问量冲破1000大关,截图庆祝!
- try...catch...finally的陷阱——加锁的线程开发经验分享
- mysql groupby php_php – MySQL,GroupBy OrderBy
- 浏览Android系统源码的站点
- Discuz模版制作流程
- win10系统C盘根目录里文件夹都是干什么的
- 查找附近的xxx 球面距离以及Geohash方案探讨
- 【xlwings api语言参考】Range.AutoFill 方法
- linux域名通过代理,Haproxy根据域名匹配后端服务器
- Google优化排名方法
热门文章
- YOLOv1的loss函数
- MATLAB 部署工具(Deployment Tool)的使用——MATLAB与C#混合编程
- PCB 传输线教程(上):基于 Polar Si9000 与嘉立创工艺的传输线设计
- 重生之沙费德提克 LOL重生之沙费德提克购买地址 重生之沙稻草人皮肤特效视频
- 新未来简史:区块链、人工智能、大数据陷阱与数字化生活 - 电子书下载(高清版PDF格式+EPUB格式)...
- hex和bin文件格式区别
- 软件测试人员的素质要求
- SAS 9.4 的超详细安装过程(保姆级教程)(含安装包+常见问题解决)
- JAVA2实用教程(第5版)第二章
- 超详细的Python安装和环境搭建教程(2022)