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写的一个squid访问日志分析的小程序
Sep 17 Python
Python求两个list的差集、交集与并集的方法
Nov 01 Python
python实现支付宝当面付(扫码支付)功能
May 30 Python
python实现textrank关键词提取
Jun 22 Python
对python实时得到鼠标位置的示例讲解
Oct 14 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
简单了解python代码优化小技巧
Jul 08 Python
python 实现线程之间的通信示例
Feb 14 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
Python基于callable函数检测对象是否可被调用
Oct 16 Python
python 检测图片是否有马赛克
Dec 01 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静态类
2006/11/25 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
商场拾金不昧表扬信
2014/01/13 职场文书
出生公证书样本
2014/04/04 职场文书
学雷锋宣传标语
2014/06/25 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
师范生教育见习总结
2015/06/23 职场文书
运动会通讯稿300字
2015/07/20 职场文书
Python OpenCV超详细讲解基本功能
2022/04/02 Python