我的代码是
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',]
输出应如下所示:
[यो, किताब, टेबुल, मा, छ,यो, एक, किताब, हो]
答案 0 :(得分:4)
您正在查看repr()
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))
[यो, किताब, टेबुल, मा, छ, यो, एक, किताब, हो]
但是,如果要向最终用户显示此内容,为什么要使用方括号?