Python判断文件和字符串编码类型的实例


Posted in Python onDecember 21, 2017

python判断文件和字符串编码类型可以用chardet工具包,可以识别大多数的编码类型。但是前几天在读取一个Windows记事本保存的txt文件时,GBK却被识别成了KOI8-R,无解。

然后就自己写了个简单的编码识别方法,代码如下:

coding.py

# 说明:UTF兼容ISO8859-1和ASCII,GB18030兼容GBK,GBK兼容GB2312,GB2312兼容ASCII
CODES = ['UTF-8', 'UTF-16', 'GB18030', 'BIG5']
# UTF-8 BOM前缀字节
UTF_8_BOM = b'\xef\xbb\xbf'

# 获取文件编码类型
def file_encoding(file_path):
 """
 获取文件编码类型\n
 :param file_path: 文件路径\n
 :return: \n
 """
 with open(file_path, 'rb') as f:
  return string_encoding(f.read())

# 获取字符编码类型
def string_encoding(b: bytes):
 """
 获取字符编码类型\n
 :param b: 字节数据\n
 :return: \n
 """
 # 遍历编码类型
 for code in CODES:
  try:
   b.decode(encoding=code)
   if 'UTF-8' == code and b.startswith(UTF_8_BOM):
    return 'UTF-8-SIG'
   return code
  except Exception:
   continue
 return '未知的字符编码类型'

说明:file_encoding方法用于判断文件编码类型,参数为文件路径;string_encoding方法用于判断字符串编码类型,参数为字符串对应的字节数据

使用示例:

import coding
file_name = input('请输入待识别文件路径:\n')
encoding = coding.file_encoding(file_name)
print(encoding)

以上这篇Python判断文件和字符串编码类型的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
python实现多进程代码示例
Oct 31 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
Python数据类型之Set集合实例详解
May 07 Python
Django框架中间件(Middleware)用法实例分析
May 24 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
Django如何将URL映射到视图
Jul 29 Python
解决springboot yml配置 logging.level 报错问题
Feb 21 Python
python中的yield from语法快速学习
Nov 06 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
Dec 21 #Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
Dec 21 #Python
基于Python的文件类型和字符串详解
Dec 21 #Python
Python绘制七段数码管实例代码
Dec 20 #Python
python代码实现ID3决策树算法
Dec 20 #Python
python决策树之CART分类回归树详解
Dec 20 #Python
python中文乱码不着急,先看懂字节和字符
Dec 20 #Python
You might like
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
Jquery组件easyUi实现表单验证示例
2016/08/23 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[02:29]大剑、皮鞭、女装,这届DOTA2勇士令状里都有
2020/07/17 DOTA
Python简单操作sqlite3的方法示例
2017/03/22 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
365 Tickets英国:全球景点门票
2019/07/06 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
护理不良事件检讨书
2014/02/06 职场文书
出国签证在职证明范本
2014/11/24 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
法律意见书范文
2015/06/04 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书
Python 键盘事件详解
2021/11/11 Python