使用ord()
:
In [35]: str1="0Cell Phones: Smartphone,\x02\x05\x0e\x02\x05Mobile Phone - Best Buy13AT&T Wireless: AT&T Phones & Cell Phone Plans - Best Buy4\x02\x05\x0e\x02\x05Cell Phones: Smartphone, Mobile Phone - Best Buy1\x02\x05\x0e\x02\x05AT&T Wireless: AT&T Phones & Cell Phone Plans - Best Buy"
In [36]: "".join(x for x in str1 if 31 < ord(x) <127)
Out[36]: '0Cell Phones: Smartphone,Mobile Phone - Best Buy13AT&T Wireless: AT&T Phones & Cell Phone Plans - Best Buy4Cell Phones: Smartphone, Mobile Phone - Best Buy1AT&T Wireless: AT&T Phones & Cell Phone Plans - Best Buy'
前 32 个是非打印字符,这个范围包括return
等backspace
,32-127
是可打印的 ASCII 字符。
128-255
: 扩展的 ASCII
ord()
返回单个字符的整数值,我们可以通过31 < ord(x) <127
.