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中的Cookie模块使用
Jul 06 Python
Python工程师面试题 与Python Web相关
Jan 14 Python
python线程、进程和协程详解
Jul 19 Python
打包发布Python模块的方法详解
Sep 18 Python
Python3.6.2调用ffmpeg的方法
Jan 10 Python
Python程序打包工具py2exe和PyInstaller详解
Jun 28 Python
简单了解python变量的作用域
Jul 30 Python
python实现PID算法及测试的例子
Aug 08 Python
tensorflow实现训练变量checkpoint的保存与读取
Feb 10 Python
Python可变对象与不可变对象原理解析
Feb 25 Python
聊聊Python中关于a=[[]]*3的反思
Jun 02 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 23 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
基于xcache的配置与使用详解
2013/06/18 PHP
PHP数组操作类实例
2015/07/11 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
javascript常见用法总结
2014/05/22 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
python中import reload __import__的区别详解
2017/10/16 Python
python 对象和json互相转换方法
2018/03/22 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
机械工程系毕业生求职信
2013/09/27 职场文书
预备党员党课思想汇报
2014/01/13 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
二年级学生评语大全
2014/04/23 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
助理政工师申报材料
2014/06/03 职场文书
军训口号
2014/06/13 职场文书
挂职学习心得体会
2014/09/09 职场文书
卖房协议书样本
2014/10/30 职场文书
2014年实习生工作总结
2014/11/27 职场文书
火烧圆明园的观后感
2015/06/03 职场文书