2015-10-09 138 views
1

我想從一個CSV文件刪除Unicode字符

f = open('menu.csv') 
    content = f.read() 
    content.decode("utf-8") 
    print content 
    content.decode("utf-8").replace(u"\u00a3", "*") 

    content.decode("utf-8").replace(u"\u00a3", "*").encode("utf-8") 

刪除井號(£)但是,當我打印,內容完全不改變。它返回相同的字符串。

回答

2

更新您的content

content=content.decode("utf-8").replace(u"\u00a3", "*") 
0

你並不需要這種編碼/解碼業務:

content=content.encode('utf-8').replace(u'£','*') 
+0

我得到這個錯誤:回溯(最近通話最後一個): 文件「 pound.py「,第10行,在 content = content.encode('utf-8')。replace(u'\ u00a3','*') UnicodeDecodeError:'ascii'編解碼器無法解碼字節在位置764的0xc2:序號不在範圍內(128) – MarkJ

+0

@ K.B,嘗試從我的答案中複製和粘貼版本 – ForceBru

+0

'content'已經是一個字節字符串。在一個字節字符串上調用'encode'是不正確的,而@ K.B的原因是這個答案出錯了。 Python 3禁止它,但是Python 2試圖通過使用'ascii'編解碼器解碼它來調用'encode'之前,將字節串強制爲一個Unicode字符串。 –

0
to print pound sign you should open file with encodigns flag .. 

with open('data.csv', encoding='utf-8') as f: