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实现通过哈希算法检测图片重复的教程
Apr 02 Python
用实例解释Python中的继承和多态的概念
Apr 27 Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
Python3 操作符重载方法示例
Nov 23 Python
TensorFlow高效读取数据的方法示例
Feb 06 Python
Python全排列操作实例分析
Jul 24 Python
python Django里CSRF 对应策略详解
Aug 05 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
Django模型中字段属性choice使用说明
Mar 30 Python
基于Pyinstaller打包Python程序并压缩文件大小
May 28 Python
numpy数据类型dtype转换实现
Apr 24 Python
Python实战之OpenCV实现猫脸检测
Jun 26 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
PHP 模板高级篇总结
2006/12/21 PHP
实用函数10
2007/11/08 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
在python中求分布函数相关的包实例
2020/04/15 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
python中JWT用户认证的实现
2020/05/18 Python
基于python实现复制文件并重命名
2020/09/16 Python
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
中职应届生会计求职信
2013/10/23 职场文书
体育学院毕业生自荐信
2013/11/03 职场文书
教师绩效考核方案
2014/01/21 职场文书
英语教育专业自荐信
2014/05/29 职场文书
保卫工作个人总结
2015/03/03 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技