上QQ阅读APP看书,第一时间看更新
2.2.2 删除不需要的字符
去除字符串中一些不需要的字符,是在工作中经常碰到的操作,比如去除空格。
strip()方法用于删除开始或结尾的字符。lstrip()和rstrip()方法分别从左和右执行删除操作。默认情况下,这些方法会去除空字符,也可以指定其他字符,相关代码(delete_str.py)示例如下:
test_str = ' hello world \n ' print(f'去除前后空格:{test_str.strip()}') print(f'去除左侧空格:{test_str.lstrip()}') print(f'去除右侧空格:{test_str.rstrip()}') test_t = '===== hello--world-----' print(test_t.rstrip('-')) print(test_t.strip('-='))
执行py文件,输出结果如下:
去除前后空格:hello world 去除左侧空格:hello world 去除右侧空格: hello world ===== hello--world hello--world
strip()方法经常会被用到,如用来去掉空格、引号。
注意:去除操作不会对字符串的中间的文本产生任何影响。
如果想处理字符串中间的空格,需要求助其他方法,如使用replace()方法或者使用正则表达式,代码示例如下:
print(test_s.replace(' ', '')) import re print(re.sub('\s+', '', test_s))
通常情况下,我们可以将字符串strip操作和其他迭代操作相结合,如从文件中读取多行数据,此时使用生成器表达式就非常好,相关代码示例(delete_str.py)示例如下:
file_name = '/path/path' with open(file_name) as file: lines = (line.strip() for line in file) for line in lines: print(line)
示例中,表达式lines=(line.strip() for line in file)执行数据转换操作。这种方式非常高效,不需要预先将所有数据读取到一个临时列表。它仅仅是创建一个生成器,并且在每次返回行之前会先执行strip操作。