python读txt文件的编码问题
2016-04-14 08:38
375 查看
Pytho代码:
# -*- coding: UTF-8 -*- import codecs #f1 = codecs.open("D:\\python_code\\bayes\\data\\label.txt", 'r', 'utf-8') f1 = open("D:\\python_code\\bayes\\data\\label.txt") list1 = ['味道', '物流', '外观', '包装', '性价比', '品质', '功效', '价格', '赠品', '服务'] list2 = [] for line in f1: line = line.strip() list2.append(line) print list1 print list2 for l1 in list1: #l1 = l1.decode("utf-8") print l1, if l1 in list2: print True else: print False
label.txt: 味道 物流 外观 包装 性价比 品质 功效 价格 赠品 服务 输出格式:
list1: ['\xe5\x91\xb3\xe9\x81\x93', '\xe7\x89\xa9\xe6\xb5\x81', '\xe5\xa4\x96\xe8\xa7\x82', '\xe5\x8c\x85\xe8\xa3\x85' , .......] list2: ['\xef\xbb\xbf\xe5\x91\xb3\xe9\x81\x93', '\xe7\x89\xa9\xe6\xb5\x81', '\xe5\xa4\x96\xe8\xa7\x82', '\xe5\x8c\x85\xe8\xa3\x85' ,..........]
对比两个list,list2中的第一个元素的Unicode编码多了'\xef\xbb\xbf'三个字节的字符串,这样的话我们在使用带这种标记的数据是可能会出现错误, 出现这种错误的原因是因为在.txt的文件时,txt文件会在该文件的第一行加入这三个字节作为开始的标记符,这种标记叫BOM,当然我们在保存的时候 可以把文件保存为无BOM的文件格式,这种错误通常都很隐蔽,需要注意!
相关文章推荐
- python基本数据类型-数字
- 开始写blog记录下学习python的过程
- How is map() implemented internally in Python?
- Python语言进行机器学习的开源项目
- 随机验证码生成(python实现)
- python利用wmi修改IP、DNS
- Python爬虫爬验证码实现功能详解
- 十个python程序小技巧
- python 爬虫试手 requests+BeautifulSoup
- python函数
- Python中os及os.path的相关方法
- Python命令Tab自动补全脚本
- Python学习路程day11
- Python简介
- python分析mysql-binlog,统计时间段内各表的操作次数_2016041302
- 几个Python中的基础算法
- 利用Python进行数据分析笔记(一
- python_发送邮件
- Python 爬验证码
- python集合(set)