Python读取文件,检测文件编码及去除UTF8 BOM
来源:互联网 发布:马穆鲁克王朝知乎 编辑:程序博客网 时间:2024/05/19 22:59
对于Python来说,什么都好,就是编码问题真是让人头疼。当然,明白原理后自然没什么了,可各种命令行窗口、IDE的实现不同,导致此问题更糟糕。
之前使用的时候,应该是把Python的处理方式搞懂了的,但是今天忘了处理UTF-8文件头BOM这件事。
Python问题解决参考:http://blog.csdn.net/lxdcyh/article/details/4018054
先在来讲一下关于检测文件编码。使用的是chardet(点击这里查看)模块。下面这个函数包括了自动检测文件编码,及当文件为UTF-8时,自动去除BOM的问题:
import chardetimport codecs"""返回文件的列表,以unicode的方式保存"""def readFile(filePath): finput = open(filePath, "r") str = finput.readline() + finput.readline() #在文件中多读取一行是因为,如果一行文字太少,编码检测有可能错误,按自己要求调整 codeType = chardet.detect(str)["encoding"] #检测编码方式 print u"编码是 ", codeType finput.seek(0) #转回到文件开头 if codeType == "UTF-8": bom = codecs.BOM_UTF8[:].decode("utf-8")#考虑去除文件头的BOM content = [line.decode(codeType) if line.decode(codeType)[:1] != bom else line.decode(codeType)[1:] for line in finput] else: content = [line.decode(codeType) for line in finput] finput.close() return content
里面的有几行代码比较多余,只是为了讲个明白,大家可根据自己来更改。
- Python读取文件,检测文件编码及去除UTF8 BOM
- utf8编码文件的bom头
- JAVA 无BOM utf8文件编码判断
- 检测文件是否有BOM头并去除BOM头
- 使用PHP批量去除文件UTF8 BOM信息
- shell 去除utf8文件中bom头的方法
- Python读取文件编码及内容
- 解决UTF8+BOM编码xml文件解析异常
- php文件存储时的编码格式--utf8无BOM
- c++读取utf8等不同编码文件
- 使用python 3.0 处理utf8格式的文件BOM问题
- 利用python将文件转换为utf8 无BOM
- 检测某个txt文件是gbk编码还是utf8编码
- Python文件编码---gbk?OR utf8?
- Python 3.5 检测文件编码
- c# 去除bom文件头
- 字符编码的历史总结,UTF8的编码规则,文件BOM的由来,笔记
- MFC读取utf8文件
- JPA中persistance.xml文件的配置
- django_eclipse,pydev搭建
- 浙江2013省赛——Java Beans
- #pragma once与 #ifndef的区别
- 揭秘TI移动AP中ARM核的应用演变
- Python读取文件,检测文件编码及去除UTF8 BOM
- Web load Spring
- HDU 3634 City Planning
- 原码、反码、补码、float、ASCII码
- hdu 1061 数论
- java异常及其处理
- ProxyPassReverse
- 内存数据库
- 登录例子实践---三层架构