2014-02-26 250 views
0
a='ÿþ"[]B[]a[]l[]a[]n[]c[]e' 

注意:方括号中的方括号代表此方形符号。然而,我不能将这个方形符号复制并粘贴到这里来向你展示我正在看的东西。Python - 从文本字符串中删除方形符号

在“A”代表我已下载的文件的开头的字符。这是一个csv文件,unicode。我如何删除这些不需要的字符?我只想从a中恢复“平衡”一词。

我用简单此示例代码:

fi = open(path+fn, 'r') 
data = fi.read() 
fi.close() 
print(data) 

fn是一个CSV文件。

尝试:

data=data.encode() 
d=replace('\x00','') 

其产生错误:

TypeError: expected bytes, bytearray or buffer compatible object 
+1

我不知道Python的,但云天化是一个UTF-16 BOM所以寻找一种方式,当你打开文件 –

回答

1

打开文件时,您需要指定正确的编码。尝试

open(path+fn, 'r', encoding="utf-16") 

(我猜UTF-16,因为ASCII字符似乎在样本串两个字节编码)

+0

现货到指定的编码。正是我想要的。好一个。 – Phoenix

0

如果你不想与编码混乱,string.printable是一个列表'可打印'的字符,这可能是你正在寻找的。

>>> from string import printable 
>>> best_string_ever = filter(lambda x: x in printable, a) 
>>> best_string_ever 
'"Balance' 
0

如果可以显示字符值,则可以使用条带(U '\ UXXX')命令

使用replace()方法

newstring = textstring.replace(u'\uxxx', '') 

在这种情况下通在你想要的实际字符编码中。