python读取中文

如何从文件中读取300个汉字?

看起来很简单,但很容易掉坑里了。

一开始我这么写:

1     try:
2         fd = codecs.open(os.path.join(settings.TEXT_CONTENT_DIR,channel_name.lower(), article_id), encoding=‘utf-8‘)
3         #fd = open(os.path.join(settings.TEXT_CONTENT_DIR,channel_name.lower(), article_id))
4         text = fd.read(300)
5         fd.close()
6     except Exception, e:
7         print "content.load() Error:", e

但是文件中如果是中英文夹杂怎么办?

因为 utf8编码是变长的,所以很有可能会读出半个汉字。

解决办法:

1.写文件时指定 utf8编码:

1 import  codecs
2
3 fd = codecs.open(conf.data_directory + os.sep + conf.text_directory + os.sep + channel_name + os.sep + str(id),
4                              ‘w+‘, "utf-8")
5 fd.write(text)
6 fd.close()

http://segmentfault.com/q/1010000000131965

2.指定 utf8读文件:

1     try:
2         fd = codecs.open(os.path.join(settings.TEXT_CONTENT_DIR,channel_name.lower(), article_id), encoding=‘utf-8‘)
3         #fd = open(os.path.join(settings.TEXT_CONTENT_DIR,channel_name.lower(), article_id))
4         text = fd.read(settings.TAG_ARTICLE_CHARACTERS_NUMBERS)
5         fd.close()
6     except Exception, e:
7         print "content.load() Error:", e

http://blog.sina.com.cn/s/blog_630c58cb0100vqtc.html

时间: 2024-10-14 18:19:44

python读取中文的相关文章

Python读取中文txt文件错误:UnicodeEncodeError: 'gbk' codec can't encode character

1 with open(file,'r') as f: 2 line=f.readline() 3 i=1 4 while line: 5 line=line.decode('utf-8') 6 print str(i)+": "+line7 line=f.readline() 8 i=i+1 用以上代码读取一个包含中文的txt文件时,在正确地读取并打印了六百多行之后,print str(i)+": "+line这一行报错: UnicodeEncodeError:

python 读取中文CSV 'gbk' codec can't decode bytes in position 2-3:illegal multibyte sequence

读取中文的文档如Excel,CSV文件,需要中文编码 如gbk 解码才能转Unicode:然而 数据混合类型,读CSV文件就会出错,经管Excel正常. UnicodeDecodeError :'gbk' codec can't decode bytes in position 2-3:illegal multibyte sequence意思是:将一个字符串,通过gbk的方式,去解码,想要获得Unicode字符串,结果出错了 解决方法:处理的字符的确是gb2312,但是其中夹杂的部分特殊字符,是

python读取中文文件编码问题

python 读取中文文件后,作为参数使用,经常会遇到乱码或者报错asii错误等. 我们需要对中文进行decode('gbk') 如我有一个data.txt文件有如下内容: 百度 谷歌 现在想读取文件中内容构建查询语句代码如下: f=open('data.txt','r') for i in f.readlines(): data_line=i.strip() data=data_line.decode("gbk") print "this is %s"%data

转 python 读取中文文件名/中文路径

python直接读取中文路径的文件时失败,可做如下处理: inpath = 'D:/work/yuanxx/在线导航/驾车导航/walk_log/20130619_172355.txt' uipath = unicode(ipath , "utf8") 然后用"uipath"经过编码后的路径去open()即可: fin = open(uipath)

python读取中文字符编码问题

preface:许久没遇到过编码问题,一没注意就被绊倒脚了.. 一.编辑器是以ASICC编码格式的,若想在程序中有中文,需要改为utf-8格式,加入如下代码可破: <span style="font-size:18px;">import sys reload(sys) sys.setdefaultencoding('utf8') </span> 或者参考卤主转载的这篇http://blog.csdn.net/u010454729/article/details/

python读取数据库数据,读取出的中文乱码问题

最近遇到python读取数据库数据,读取出的中文乱码问题, 网络搜索的基本是: "1. Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)2. MySQL数据库charset=utf-83. Python连接MySQL是加上参数 charset=utf84. 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)" 这些,一一尝试后仍未解决.去数据库查看了下,发现这个出现中文乱码的字段类型是varcha

Python读取SQLite文件数据

近日在做项目时,意外听说有一种SQLite的数据库,相比自己之前使用的SQL Service甚是轻便,在对数据完整性.并发性要求不高的场景下可以尝试! 1.SQLite简介: SQLite是一个进程内的库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它(如安卓系统),它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多

Python 读取 excel 文件

现在大部分数据都是存储在excel中或直接调取数据库,作为刚刚自学Python的小白来说怎么读取文件还是比较懵的,现在对Python读取excel文件进行了一些整理: #coding=utf-8 #cmd中进行安装xlrd库 pip install xlrd import xlrd #文件路径,要用/而不是\ file_path = r'C:/Users/mingli.zhao/Desktop/七天.xlsx' #中文转码 #file_path = file_path.decode('utf-8

python与中文的那点事

目录 python与中文的那点事 1. utf-8/gbk/unicode/ASCII 2.各种编码之间的转换 3. 统计字符串中数字,字母,汉字的个数 python与中文的那点事 在学习python的过程中,发现在python2与python3中对中文的处理有所不同,所以这篇文章就来探讨一下这些不同 1. utf-8/gbk/unicode/ASCII ??我们都知道,在计算机内部所有的信息都可以被表示成二进制的字符串,每一个二进制位有1和0两种状态,因此8位的二进制数可以表示256种状态,这