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 django集成cas验证系统
Jul 14 Python
windows系统下Python环境搭建教程
Mar 28 Python
Python进阶之尾递归的用法实例
Jan 31 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
Python完成哈夫曼树编码过程及原理详解
Jul 29 Python
Python3监控疫情的完整代码
Feb 20 Python
使用python实现多维数据降维操作
Feb 24 Python
keras中的backend.clip用法
May 22 Python
Python常驻任务实现接收外界参数代码解析
Jul 21 Python
在终端启动Python时报错的解决方案
Nov 20 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 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 输出简单动态WAP页面
2009/06/09 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
python基础教程之常用运算符
2014/08/29 Python
使用Python解析JSON数据的基本方法
2015/10/15 Python
Python实现Linux命令xxd -i功能
2016/03/06 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
Python处理PDF与CDF实例
2020/02/26 Python
Python项目跨域问题解决方案
2020/06/22 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
秋天的雨教学反思
2014/04/27 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
大二学生自我检讨书
2014/10/23 职场文书
安全生产工作汇报
2014/10/28 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
Java中的继承、多态以及封装
2022/04/11 Java/Android