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中输出ASCII大文字、艺术字、字符字小技巧
Apr 28 Python
一篇文章入门Python生态系统(Python新手入门指导)
Dec 11 Python
使用pytorch进行图像的顺序读取方法
Jul 27 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
Jul 01 Python
python字符串切割:str.split()与re.split()的对比分析
Jul 16 Python
Python版中国省市经纬度
Feb 11 Python
Python阶乘求和的代码详解
Feb 14 Python
Mysql数据库反向生成Django里面的models指令方式
May 18 Python
python requests模块的使用示例
Apr 07 Python
python库Tsmoothie模块数据平滑化异常点抓取
Jun 10 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 中英文语言转换类代码
2011/08/11 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
Python set集合类型操作总结
2014/11/07 Python
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
python使用str & repr转换字符串
2016/10/13 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
python Tensor和Array对比分析
2020/01/08 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
python属于跨平台语言码
2020/06/09 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
捷科时代的软件测试笔试题
2015/11/09 面试题
煤矿班组长的职责
2013/12/25 职场文书
事假请假条范文
2014/04/11 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python