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中的super用法详解
May 28 Python
浅析使用Python操作文件
Jul 31 Python
Python中的浮点数原理与运算分析
Oct 12 Python
matplotlib作图添加表格实例代码
Jan 23 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
python实现按首字母分类查找功能
Oct 31 Python
python实现的多任务版udp聊天器功能案例
Nov 13 Python
python 导入数据及作图的实现
Dec 03 Python
使用Django清空数据库并重新生成
Apr 03 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 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
thinkphp实现图片上传功能分享
2014/03/04 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
代码生成器 document.write()
2007/04/15 Javascript
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
python实现定时播放mp3
2015/03/29 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
2015/05/06 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
手把手教你python实现SVM算法
2017/12/27 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
学生就业推荐信
2013/11/13 职场文书
幼儿园老师寄语
2014/04/03 职场文书
实习报告评语
2014/04/26 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
平遥古城导游词
2015/02/03 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
物业公司管理制度
2015/08/05 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书