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检测网站链接是否已存在
Apr 07 Python
python入门前的第一课 python怎样入门
Mar 06 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
python 实现对数据集的归一化的方法(0-1之间)
Jul 17 Python
关于python列表增加元素的三种操作方法
Aug 22 Python
Python数据类型之List列表实例详解
May 08 Python
python实现五子棋人机对战游戏
Mar 25 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
python实现七段数码管和倒计时效果
Nov 23 Python
Python实现简繁体转换
Jun 07 Python
python自动化八大定位元素讲解
Jul 09 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/10/09 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
JQuery中基础过滤选择器用法实例分析
2015/05/18 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
angular4模块中给标签添加背景图的实现方法
2017/09/15 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
Python实现的最近最少使用算法
2015/07/10 Python
深入解析Python中的上下文管理器
2016/06/28 Python
Python 性能优化技巧总结
2016/11/01 Python
python实现kmp算法的实例代码
2019/04/03 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
python全栈开发语法总结
2020/11/22 Python
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
中海讯通笔试题
2015/09/15 面试题
安全负责人任命书
2014/06/06 职场文书
服务员岗位职责
2015/02/03 职场文书
活动经费申请报告
2015/05/15 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
python文件目录操作之os模块
2021/05/08 Python
Python面向对象之成员相关知识总结
2021/06/24 Python
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技