python处理多种编码格式的txt文件
问题
一般会出现的问题
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 0: invalid continuation byte
UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 2: illegal multibyte sequence
主要原因是:文件夹中的txt文件包含不同种的编码格式。
如何查看txt文件的编码格式:
打开txt文件,选择文件->另存为,下面就可以看到编码格式了,我遇到的情况是txt文件有两种格式UTF-8和ANSI两种格式。
解决方法
具体使用是try except去解决这个问题
try:正常的操作......................
except:发生异常,执行这块代码......................
法一
import osif __name__ == '__main__':imageDir = "test/"for imageName in os.listdir(imageDir):txtPATH = os.path.join(imageDir, imageName)print("txtPATH \t", txtPATH)try:f = open(txtPATH, 'r', encoding='gbk')lines = f.readlines()except:print("enter except")f = open(txtPATH, 'r', encoding='utf8')lines = f.readlines()print(lines)
注意:encoding=gbk解决的是ANSI编码格式的txt文件,utf8解决的是UTF-8编码格式的txt文件
其中f = open(txtPATH, 'r', encoding='gbk')是不会报错的,只有读取f.readlines()的时候才会报错。
法二
import osif __name__ == '__main__':imageDir = "test/"for imageName in os.listdir(imageDir):txtPATH = os.path.join(imageDir, imageName)print("txtPATH \t", txtPATH)f = open(txtPATH, 'rb')line = f.readlines()[0]try:line = line.decode('utf8')except:line = line.decode('gbk')print(line)
法三
知道txt文件的编码格式,然后再进行读取,理论上是可以的。但是在读取ANSI编码格式的txt文件,每次读取的编码格式都不一样。
这里面只是做了一个测试,没有解决问题,主要原因是chardet库得到txt编码格式不是很准确。
import chardet
import osif __name__ == '__main__':imageDir = "test/"for imageName in os.listdir(imageDir):txtPATH = os.path.join(imageDir, imageName)print("txtPATH \t", txtPATH)f = open(txtPATH, 'rb')r = f.read()# 获取文本的编码方式f_charInfo = chardet.detect(r)print(f_charInfo['encoding']) # 取得文本格式f.close()
python处理多种编码格式的txt文件相关推荐
- 如何用python和pip安装在txt文件中配置好版本的库包
如何用python和pip安装在txt文件中配置好版本的库包 文章目录: 一.建立库包版本的txt配置文件 二.安装txt配置文件中的库包 有时候你自己用python实现一个项目,然后想把它在gith ...
- python批量处理txt_浅谈Python批处理文件夹中的txt文件
1 文件处理形式 近期由于处理大量数据,所以对于采用python进行处理文件的一些操作也打算整理一下:接下来主要说一下如何处理目录下的一系列txt文件.首先看一下我们将要处理目录下的15个类似的数据文 ...
- Python百度文库爬虫之txt文件
Python百度文库爬虫之txt文件 说明: 对于文件的所有类型,我都会用一篇文章进行说明,链接: Python百度文库爬虫之txt文件 Python百度文库爬虫之doc文件 Python百度文库爬虫 ...
- python怎么创建txt文件啊_搞定Python项目依赖:requirements.txt文件的创建和使用
Python的强大在于它拥有数量众多的第三方库协助开发,在编写Python项目时,我们经常会使用很多第三方模块.由于不同设备和系统的差异性,导致我们很难分散地控制项目依赖(头铁的同学请绕道),于是re ...
- Python读取文件目录并写入txt文件
import os# 定义变量存储文件目录 # 此时文件是存储在项目下 路径直接写文件名即可 file_path = './filename' # filename根据具体的文件名修改# # 如果文件 ...
- load python txt文件_详解Python中numpy.loadtxt()读取txt文件
为了方便使用和记忆,有时候我们会把 numpy.loadtxt() 缩写成np.loadtxt() ,本篇文章主要讲解用它来读取txt文件. 读取txt文件我们通常使用 numpy 中的 loadtx ...
- python创建一个txt文件-python中如何创建一个txt文件
python中有一个内置函数open(),该函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写.如果以只写模式打开一个文件,那么该函数会在文件不存在时创建一个文件. 语法: ...
- python连接linux服务器读取txt文件_python 读取Linux服务器上的文件方法
使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址).端口号.用户名及密码 hos ...
- python 项目中的requirements.txt文件
在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.这个文件有点类似与Rails的Gemfile.其作用是用来在另一台PC ...
最新文章
- 《疯狂Java讲义》学习笔记(十)异常处理
- Xamarin Android真机测试报错
- 路由过滤之 Route-map Distribute-list
- python基础教程第4版-Python基础教程(第3版) 笔记(四)
- 2019山科计算机专业分数线,2019山东科技大学研究生分数线汇总(含2016-2019历年复试)...
- 幼儿园ppt计算机考试试题,全国“xx杯”计算机应用基础类说课大赛优秀作品:幼儿园里的各类朋友说课课件.ppt...
- 将一个项目中的图片存到另一个项目中_复盘一个Smart200小项目(2)
- 简单说说jsonp原理
- 计算机视觉论文-2021-03-31
- java取万位的值,excel表格数值如何取万位整数,来研究下吧
- 【测开方法论】测开平台pk心得-抉择
- 干货 | 在搜索引擎广告关键词生成上,算法可以做什么?
- 2018最受欢迎测试工具
- 1 ,ps2017 安装
- PCA(主成分分析)-------原理,推导,步骤、实例、代码
- 测试是ufs3.0的软件,可怕!UFS 3.0测试首曝光:速度竟是UFS 2.1的3倍
- 大学英语四级考试必读必备
- hdu 2276【Kiki Little Kiki 2】
- c++编辑注册表实现右键菜单
- 全网舆情大数据接口学习
热门文章
- mac下通过brew安装的Nginx在哪
- CISC, RISC 探究
- 如何清除图片下方出现几像素的空白间隙?
- BestCoder4 1002 Miaomiao's Geometry (hdu 4932) 解题报告
- Android,谁动了我的内存
- docker-for-windows配置了阿里云镜像,仍然无法获得链接:(Client.Timeout exceeded while awaiting headers)
- 接口测试怎么进行,如何做好接口测试
- python基础之元组定义进阶操作、字典定义进阶操作
- python协程实现一万并发_python中的协程并发
- web前端的易错点和冷知识,新人必看!