◆ 去掉字符串中的\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返回的表(字典),之後對字符串進行替換。