特殊的国家角色在Python中赢得了.split()

时间:2014-04-27 09:33:48

标签: python string python-2.7 unicode codec

从文本文件中读取特殊的国家字符时,我在Python中遇到了麻烦。

with open("../Data/DKsnak.txt") as f:
    content = f.readlines()

str1 = content[0]
print "string:",str1

lst1 = str1.split()
print "list:",lst1

输出如下:

string: Udtræk fra observatør på årstal
list: ['Udtr\xc3\xa6k', 'fra', 'observat\xc3\xb8r', 'p\xc3\xa5', '\xc3\xa5rstal']

第一行是预期的,包括特殊的丹麦特色。但是他们不会被分裂成一根绳子。 我尝试过使用编解码器和unicode的各种技巧,但却无法找到神奇的恶魔。

任何人都可以建议我如何将这些单词列入列表中,这样我就可以使用它们了。

祝你好运 马丁

运行: Python 2.7.5(默认,2014年2月19日,13:47:28) [gCC 4.8.2 20131212(Red Hat 4.8.2-7)] on linux2

3 个答案:

答案 0 :(得分:2)

你的代码很好。 python只是存储其特殊字符。如果您打印出文本,您仍会获得原始字符串:

s = 'Udtræk fra observatør på årstal'
s = s.split()

for i in s:
    print i

[OUTPUT]         #all fine
Udtræk
fra
observatør
på
årstal

答案 1 :(得分:2)

来自https://docs.python.org/2.7/howto/unicode.html

import codecs
f = codecs.open('unicode.rst', encoding='utf-8')

所以你得到unicode并可以拆分。

答案 2 :(得分:1)

如前所述使用for循环,如果你想要它们在同一行:

for i in len(list1):

    string += list1[i] + ' '

print(string)