在python中为波斯语使用unicode

在python中为波斯语使用unicode,python,unicode,utf-8,Python,Unicode,Utf 8,我正在写一个脚本,从语料库文件中读取并查找后缀。因为语料库中有波斯语单词,所以它是UTF-8编码的,但是当我使用波斯语后缀进行搜索时,我没有得到任何结果,另一方面,英语结果很好 from __future__ import unicode_literals import nltk import sys for line in open("corpus.txt"): for word in line.split(): if word.endswith('ب'): pr

我正在写一个脚本,从语料库文件中读取并查找后缀。因为语料库中有波斯语单词,所以它是UTF-8编码的,但是当我使用波斯语后缀进行搜索时,我没有得到任何结果,另一方面,英语结果很好

from __future__ import unicode_literals
import nltk
import sys


for line in open("corpus.txt"):
for word in line.split():
     if word.endswith('ب'):
        print (word)

在Python 3中,您只需将
encoding=utf-8
传递到
open

with open("corpus.txt", encoding="utf-8") as fp:
    for line in fp:
        for word in line.split():
            process(word)
在Python 2中,您需要执行以下操作:

import codecs
with codecs.open("corpus.txt", encoding="utf-8") as fp:
    for line in fp:
        for word in line.split():
            process(word)

你说我没有结果是什么意思?你的python版本是什么?(看起来您使用的是python 3)但我需要确定!我使用的是Python3.4,实际上我在shell中没有得到任何结果,就好像语料库中没有任何单词一样,@KasraIn Python 3您不需要从uu未来u导入unicode文本,您的代码也会工作得很好!但是您的文件中有以
ب
结尾的单词吗?我已经导入了“来自未来的导入unicode_文本”,但它不起作用,而且我确实有以“b”结尾的单词。无论如何,以UTF-8的形式打开文件,并以fp的形式打开(“corpus.txt”,encoding=“UTF-8”),对我来说很有效。