在工作中,经常遇到字符串切分,尤其是操作linux命令,返回一段文本,如下面这种格式
Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 3.1G 35G 9% / tmpfs 939M 0 939M 0% /dev/shm
在整理数据时,以前我都是直接split(' '), 结果当然是很不理想啊,今天get到了一个新技术----直接split()
下面看示例:
if __name__ == '__main__': line = '/dev/vda1 40G 3.1G 35G 9% /' arr = line.split() print(arr) # ['/dev/vda1', '40G', '3.1G', '35G', '9%', '/']
结果很理想,管你几个空格,我全给你干掉,然后搞成一个顺眼数组,完美!!
此别,python还有个filter函数,使用起来也是牛一逼,且看如下示例
if __name__ == '__main__': line = '/dev/vda1 40G 3.1G 35G 9% /' # arr = line.split() # print(arr) ret = list(filter(None, line.split(' '))) print(ret) #['/dev/vda1', '40G', '3.1G', '35G', '9%', '/']
同样完成了上面的切分功能,但使用起来略显复杂。不过,filter这个函数还是很有用的。