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实现批量将word转html并将html内容发布至网站的方法
Jul 14 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
Jul 27 Python
python3.4实现邮件发送功能
May 28 Python
Python代码打开本地.mp4格式文件的方法
Jan 03 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
Dec 13 Python
pytorch 修改预训练model实例
Jan 18 Python
django admin 添加自定义链接方式
Mar 11 Python
keras K.function获取某层的输出操作
Jun 29 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 Python
python自动化之如何利用allure生成测试报告
May 02 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
Sony CFR 320 修复改造
2020/03/14 无线电
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
详解php用static方法的原因
2018/09/12 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
JS解析XML实例分析
2015/01/30 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
Json解析的方法小结
2016/06/22 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
Nike香港官网:Nike HK
2019/03/23 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
公司法定代表人授权委托书
2014/09/29 职场文书
医生个人自我剖析材料
2014/10/08 职场文书
捐助倡议书
2015/01/19 职场文书
暑假生活随笔
2015/08/15 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
详解MySQL 用户权限管理
2021/04/20 MySQL