python資料之去掉字符串中的特殊字符

◆ 去掉字符串中的\xa0、\t、\n:

\xa0 是不間斷空白符   我們通常所用的空格是 \x20 ,是在標準ASCII可見字符 0x20~0x7e 範圍內。而 \xa0 屬於 latin1 (ISO/IEC_8859-1)中的擴展字符集字符,代表空白符nbsp(non-breaking space)。

latin1 字符集向下兼容 ASCII ( 0x20~0x7e )。通常我們見到的字符多數是 latin1 的,比如在 MySQL 數據庫中的如下信息:

'T-shirt\xa0\xa0短袖圓領衫,體恤衫\xa0,', 'V-neck\xa0\xa0V型領\xa0sleeve\xa0\xa0袖子\xa0,',

方法一:

split方法切分再join

>>> s 'T-shirt\xa0\xa0短袖圓領衫,體恤衫\xa0' 
>>> out = "".join(s.split()) 
>>> out 
'T-shirt短袖圓領衫,體恤衫'

注:split方法中不帶參數時,表示分割所有換行符、製表符、空格。

方法二:

使用translate方法:

>>> inputstring = u'\n                      Door:\xa0Novum          \t      '
>>> move = dict.fromkeys((ord(c) for c in u"\xa0\n\t"))
>>> output = inputstring.translate(move)
>>> output
'                       Door:Novum          '

1、ord() 函數:

chr()函數(對於8位的ASCII字符串)或unichr()函數(對於Unicode對象)的配對函數,它以一個字符(長度爲1的字符串)作爲參數,返回對應的ASCII數值,或者Unicode數值,如果所給的Unicode字符超出了你的Python定義範圍,則會引發一個TypeError的異常。

2、fromkeys方法:

dict中的fromkeys方法目的是創建一個只有key的字典,內部利用for循環,使三個字符的asii碼值成爲可迭代對象(本來的整數是不可迭代的),分別對其迭代,存入字典。

3、translate方法:

根據參數table給出的表(包含 256 個字符)轉換字符串的字符, 要過濾掉的字符放到 del 參數中。接收到move返回的表(字典),之後對字符串進行替換。

發佈了293 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章