如何在python或bash中对urdu单词进行排序

时间:2015-11-12 03:59:29

标签: python

我有一个包含urdu字的文本文件。我必须删除它的副本。为此,需要对这些单词进行排序。在英语中,它不是问题,但当我跟随urdu时,它就成了一个问题(错误)。对于测试用例,假设我的文本文件包含浮动单词(为简单起见,每行中有一个单词)

جنگ
بندی
 اس
کروانا
سات
 اس
سات

以下是代码和错误。

[example@localhost compare]$ ./get_urdu_words.py |sort

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

这里get_urdu_words.py是一个从urdu / English mix文件中提取urdu单词的脚本,sort是bash命令。

这是get_urdu_words.py

的代码
import re
test=u"جنگ بندی  اس کروانا سات  اس سات"

token=test.split(' ')
for w in token:
 status=re.search(ur'[\u0600-\u06ff]+',w)
 if status:
  print w

此问题仅适用于乌尔都语语言

1 个答案:

答案 0 :(得分:1)

稍作修改即可解决您的问题。试试这个

import re
test=u"جنگ بندی  اس کروانا سات  اس سات"

token=test.split(' ')
for w in token:
 status=re.search(ur'[\u0600-\u06ff]+',w)
 if status:
  print w.encode('utf-8')

运行此命令后

[example@localhost compare]$ ./get_urdu_words.py |sort