我的代码是
f = codecs.open(r'C:UsersAdminDesktopnepali.txt', 'r', 'UTF-8')
nepali = f.read().split()
for i in nepali:
print i
显示文件中的单词:
यो
किताब
टेबुल
मा
छ
यो
एक
किताब
हो
केटा
但当我试图用代码创建一个单词列表时:
file=codecs.open(r'C:UsersAdminDesktopnepali.txt', 'r', 'UTF-8')
nepali = list(file.read().split())
print nepali
输出现在显示为类似
[u'ufeffu092fu094b', u'u0915u093fu0924u093eu092c', u'u091fu0947u092cu0941u0932', u'u092eu093e', u'u091b', u'u092fu094b', u'u090fu0915', u'u0915u093fu0924u093eu092c', u'u0939u094b',]
输出应该看起来像:
[यो, किताब, टेबुल, मा, छ,यो, एक, किताब, हो]
您正在查看repr()
函数的输出,该函数始终用于显示容器的内容。输出用于调试,而不是最终用户显示;任何不可打印的非ASCII码点都由转义序列表示(根据码点的不同,可以是像t
或n
这样的单字符转义,也可以使用2、4或8个十六进制数字,如xe5
、u2603
或U0001f4e2
)。
您必须手动生成输出:
print u'[{}]'.format(u', '.join(nepali))
这将生成一个格式类似列表对象的unicode字符串,但不使用repr()
,只需在字符串周围添加方括号,并用', '
(逗号和空格)连接即可。
演示:
>>> nepali = [u'ufeffu092fu094b', u'u0915u093fu0924u093eu092c', u'u091fu0947u092cu0941u0932', u'u092eu093e', u'u091b', u'u092fu094b', u'u090fu0915', u'u0915u093fu0924u093eu092c', u'u0939u094b',]
>>> print u'[{}]'.format(u', '.join(nepali))
[यो, किताब, टेबुल, मा, छ, यो, एक, किताब, हो]
然而,如果你想向最终用户展示这一点,为什么要使用方括号呢?