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控制多进程与多线程并发数总结
Oct 26 Python
Django视图和URL配置详解
Jan 31 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
Python简单读写Xls格式文档的方法示例
Aug 17 Python
python按照多个条件排序的方法
Feb 08 Python
python+openCV调用摄像头拍摄和处理图片的实现
Aug 06 Python
django rest framework serializers序列化实例
May 13 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
写一个Python脚本自动爬取Bilibili小视频
Apr 24 Python
Python实现抖音热搜定时爬取功能
Mar 16 Python
Python实现日志实时监测的示例详解
Apr 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
PHP header函数分析详解
2011/08/06 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
PHP 的Opcache加速的使用方法
2017/12/29 PHP
phpwind放自动注册方法
2006/12/02 Javascript
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
jQuery实现监控页面所有ajax请求的方法
2015/12/10 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
前台接待的工作职责
2013/11/21 职场文书
自我鉴定书面格式
2014/01/13 职场文书
未中标通知书
2015/04/17 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
第一书记观后感
2015/06/08 职场文书
实践论读书笔记
2015/06/29 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
python实现简单的名片管理系统
2021/04/26 Python