问题

一般会出现的问题

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文件相关推荐

  1. 如何用python和pip安装在txt文件中配置好版本的库包

    如何用python和pip安装在txt文件中配置好版本的库包 文章目录: 一.建立库包版本的txt配置文件 二.安装txt配置文件中的库包 有时候你自己用python实现一个项目,然后想把它在gith ...

  2. python批量处理txt_浅谈Python批处理文件夹中的txt文件

    1 文件处理形式 近期由于处理大量数据,所以对于采用python进行处理文件的一些操作也打算整理一下:接下来主要说一下如何处理目录下的一系列txt文件.首先看一下我们将要处理目录下的15个类似的数据文 ...

  3. Python百度文库爬虫之txt文件

    Python百度文库爬虫之txt文件 说明: 对于文件的所有类型,我都会用一篇文章进行说明,链接: Python百度文库爬虫之txt文件 Python百度文库爬虫之doc文件 Python百度文库爬虫 ...

  4. python怎么创建txt文件啊_搞定Python项目依赖:requirements.txt文件的创建和使用

    Python的强大在于它拥有数量众多的第三方库协助开发,在编写Python项目时,我们经常会使用很多第三方模块.由于不同设备和系统的差异性,导致我们很难分散地控制项目依赖(头铁的同学请绕道),于是re ...

  5. Python读取文件目录并写入txt文件

    import os# 定义变量存储文件目录 # 此时文件是存储在项目下 路径直接写文件名即可 file_path = './filename' # filename根据具体的文件名修改# # 如果文件 ...

  6. load python txt文件_详解Python中numpy.loadtxt()读取txt文件

    为了方便使用和记忆,有时候我们会把 numpy.loadtxt() 缩写成np.loadtxt() ,本篇文章主要讲解用它来读取txt文件. 读取txt文件我们通常使用 numpy 中的 loadtx ...

  7. python创建一个txt文件-python中如何创建一个txt文件

    python中有一个内置函数open(),该函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写.如果以只写模式打开一个文件,那么该函数会在文件不存在时创建一个文件. 语法: ...

  8. python连接linux服务器读取txt文件_python 读取Linux服务器上的文件方法

    使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址).端口号.用户名及密码 hos ...

  9. python 项目中的requirements.txt文件

    在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.这个文件有点类似与Rails的Gemfile.其作用是用来在另一台PC ...

最新文章

  1. 《疯狂Java讲义》学习笔记(十)异常处理
  2. Xamarin Android真机测试报错
  3. 路由过滤之 Route-map Distribute-list
  4. python基础教程第4版-Python基础教程(第3版) 笔记(四)
  5. 2019山科计算机专业分数线,2019山东科技大学研究生分数线汇总(含2016-2019历年复试)...
  6. 幼儿园ppt计算机考试试题,全国“xx杯”计算机应用基础类说课大赛优秀作品:幼儿园里的各类朋友说课课件.ppt...
  7. 将一个项目中的图片存到另一个项目中_复盘一个Smart200小项目(2)
  8. 简单说说jsonp原理
  9. 计算机视觉论文-2021-03-31
  10. java取万位的值,excel表格数值如何取万位整数,来研究下吧
  11. 【测开方法论】测开平台pk心得-抉择
  12. 干货 | 在搜索引擎广告关键词生成上,算法可以做什么?
  13. 2018最受欢迎测试工具
  14. 1 ,ps2017 安装
  15. PCA(主成分分析)-------原理,推导,步骤、实例、代码
  16. 测试是ufs3.0的软件,可怕!UFS 3.0测试首曝光:速度竟是UFS 2.1的3倍
  17. 大学英语四级考试必读必备
  18. hdu 2276【Kiki Little Kiki 2】
  19. c++编辑注册表实现右键菜单
  20. 全网舆情大数据接口学习

热门文章

  1. mac下通过brew安装的Nginx在哪
  2. CISC, RISC 探究
  3. 如何清除图片下方出现几像素的空白间隙?
  4. BestCoder4 1002 Miaomiao's Geometry (hdu 4932) 解题报告
  5. Android,谁动了我的内存
  6. docker-for-windows配置了阿里云镜像,仍然无法获得链接:(Client.Timeout exceeded while awaiting headers)
  7. 接口测试怎么进行,如何做好接口测试
  8. python基础之元组定义进阶操作、字典定义进阶操作
  9. python协程实现一万并发_python中的协程并发
  10. web前端的易错点和冷知识,新人必看!