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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM