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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
Python如何实现守护进程的方法示例
Feb 08 Python
python 连接sqlite及简单操作
Jun 30 Python
python中正则表达式的使用方法
Feb 25 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
Python分支语句与循环语句应用实例分析
May 07 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
pycharm 对代码做静态检查操作
Jun 09 Python
Python 如何调试程序崩溃错误
Aug 03 Python
python向企业微信发送文字和图片消息的示例
Sep 28 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中读取和写入WORD文档的代码
2008/04/09 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
PHP设计模式之注册树模式分析
2018/01/26 PHP
浅谈javascript的原型继承
2012/07/25 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
简单谈谈python基本数据类型
2018/09/26 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
python 实现多维数组(array)排序
2020/02/28 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
Everything But Water官网:美国泳装品牌
2019/03/17 全球购物
Linux操作面试题
2012/05/16 面试题
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
迎接领导欢迎词
2014/01/11 职场文书
旅游业大学生创业计划书
2014/01/31 职场文书
会走路的树教学反思
2014/02/20 职场文书
家长会主持词
2014/03/26 职场文书
市场调查策划方案
2014/06/10 职场文书
高中综合实践活动总结
2014/07/07 职场文书
争先创优心得体会
2014/09/12 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python