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文件读取的3种方法及路径转义
Jun 21 Python
详解python基础之while循环及if判断
Aug 24 Python
快速了解Python中的装饰器
Jan 11 Python
Python实现XML文件解析的示例代码
Feb 05 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
python的继承知识点总结
Dec 10 Python
python解析json串与正则匹配对比方法
Dec 20 Python
Python数据可视化教程之Matplotlib实现各种图表实例
Jan 13 Python
详解Python实现进度条的4种方式
Jan 15 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 Python
Python如何解决secure_filename对中文不支持问题
Jul 16 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模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
php在文件指定行中写入代码的方法
2012/05/23 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
javascript奇异的arguments分析
2010/10/20 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
2013/10/15 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
Python中编写ORM框架的入门指引
2015/04/29 Python
python根据日期返回星期几的方法
2015/07/06 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
Python将string转换到float的实例方法
2019/07/29 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
Linux如何为某个操作添加别名
2013/03/01 面试题
农村婚礼证婚词
2014/01/10 职场文书
客户表扬信范文
2014/01/10 职场文书
小学科学教学反思
2014/01/26 职场文书
超越自我演讲稿
2014/05/21 职场文书
研究生个人学年总结
2015/02/14 职场文书
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL
Python必备技巧之字符数据操作详解
2022/03/23 Python