2015-02-05 46 views
0

我试图把这个字符串转换成一个列表:Python的 - 打开一个字符串到一个列表

f = open("animals.txt", "r") 
g = f.read() 
g1 = g.split(",") 
print g1 # list of words 

我越来越:

['\x93SHEEP\x94', '\x94TIGER\x94', '\x94LION\x94', '\x94DEER\x94', 
'\x94PIG\x94', '\x94DOG\x94', '\x94CAT\x94', '\x94SHARK\x94', 
'\x94RAT\x94', '\x94EEL\x94'] 

我要的是:

['SHEEP', 'TIGER', 'LION', 'DEER', 'PIG', 'DOG', 'CAT', 'SHARK', 'RAT', 'EEL'] 

我该怎么做?

+1

您可以发布animals.txt的内容?也许也是一个hexdump。 – 2015-02-06 00:05:30

回答

3

您可以使用encode('ascii','ignore')删除统一码,但请注意,您首先需要澄清的蟒蛇,你的字符串是unicode的,你可以用decode('unicode_escape')做:

>>> l 
['\x93SHEEP\x94', '\x94TIGER\x94', '\x94LION\x94', '\x94DEER\x94', '\x94PIG\x94', '\x94DOG\x94', '\x94CAT\x94', '\x94SHARK\x94', '\x94RAT\x94', '\x94EEL\x94'] 
>>> [i.decode('unicode_escape').encode('ascii','ignore') for i in l] 
['SHEEP', 'TIGER', 'LION', 'DEER', 'PIG', 'DOG', 'CAT', 'SHARK', 'RAT', 'EEL'] 
0

尝试把这个在你的代码的顶部:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
0

尝试使用转义你的字符串:

g.decode("unicode-escape") 

或:

for i in range(0,len(g1)): 
    g1[i] = g1[i].decode("unicode-escape") 

这是假定G1是包含字符串和克阵列包含整个文件作为一个字符串变量。

我从我的回答:

Python: Sanitize a string for unicode?

相关问题