python中去掉字符串中的\xa0、\t、\n等字符

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

inputstring = u'\n                      Door:\xa0Novum          \t      '
move = dict.fromkeys((ord(c) for c in u"\xa0\n\t"))
output = inputstring.translate(move)
s = u'T-shirt\xa0\xa0短袖圓領衫,體恤衫\xa0'
res = "".join(s.split())

知識點:

ord函數:

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

fromkeys方法:

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

translate方法:

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

split方法:

split不帶參數時,表示分割所有換行符、製表符、空格。分割後使用join合併所有切片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章