列出fi中的unicode单词

2024-04-25 19:37:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我的密码是

f = codecs.open(r'C:\Users\Admin\Desktop\nepali.txt', 'r', 'UTF-8')
nepali = f.read().split()
for i in nepali:
    print i

显示文件中的单词:

यो
किताब
टेबुल
मा
छ
यो
एक
किताब
हो
केटा

但当我试图用代码创建单词列表时:

file=codecs.open(r'C:\Users\Admin\Desktop\nepali.txt', 'r', 'UTF-8')
nepali = list(file.read().split())
print nepali

输出现在显示如下

[u'\ufeff\u092f\u094b', u'\u0915\u093f\u0924\u093e\u092c', u'\u091f\u0947\u092c\u0941\u0932', u'\u092e\u093e', u'\u091b', u'\u092f\u094b', u'\u090f\u0915', u'\u0915\u093f\u0924\u093e\u092c', u'\u0939\u094b',]

输出应如下所示:

[यो, किताब, टेबुल, मा, छ,यो, एक, किताब, हो]

Tags: txtreadadminopenusersutfsplitprint
1条回答
网友
1楼 · 发布于 2024-04-25 19:37:35

您正在查看^{} function的输出,它总是用于显示容器的内容。输出用于调试,而不是最终用户显示;任何不可打印的非ASCII码点都由转义序列表示(根据码点的不同,转义序列可以是\t\n等单个字符转义,也可以使用2、4或8个十六进制数字,如\xe5\u2603\U0001f4e2)。你知道吗

您必须手动生成输出:

print u'[{}]'.format(u', '.join(nepali))

这将生成一个格式类似于列表对象的unicode字符串,但不使用repr(),只需在字符串周围添加方括号,并用', '(逗号和空格)连接即可。你知道吗

演示:

>>> nepali = [u'\ufeff\u092f\u094b', u'\u0915\u093f\u0924\u093e\u092c', u'\u091f\u0947\u092c\u0941\u0932', u'\u092e\u093e', u'\u091b', u'\u092f\u094b', u'\u090f\u0915', u'\u0915\u093f\u0924\u093e\u092c', u'\u0939\u094b',]
>>> print u'[{}]'.format(u', '.join(nepali))
[यो, किताब, टेबुल, मा, छ, यो, एक, किताब, हो]

但是,如果您想向最终用户显示这一点,为什么要使用方括号呢?你知道吗

相关问题 更多 >