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 的 Socket 编程
Mar 24 Python
python获取远程图片大小和尺寸的方法
Mar 26 Python
python通过加号运算符操作列表的方法
Jul 28 Python
Unicode和Python的中文处理
Mar 19 Python
python 判断是否为正小数和正整数的实例
Jul 23 Python
使用pandas实现csv/excel sheet互相转换的方法
Dec 10 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
Pytorch之contiguous的用法
Dec 31 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 Python
Django model重写save方法及update踩坑详解
Jul 27 Python
基于Python的EasyGUI学习实践
May 07 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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
jquery 查找新建元素代码
2010/07/06 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
python获取中文字符串长度的方法
2018/11/14 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
说出数据连接池的工作机制是什么?
2013/04/19 面试题
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
高中毕业生生活的自我评价
2013/12/08 职场文书
鉴定评语大全
2014/05/05 职场文书
中学清明节活动总结
2014/07/04 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
群众路线专项整治工作情况报告
2014/10/28 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL