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合并所有切片

你可能感兴趣的:(python,Python,Cook)