Last updated 5 years ago
Was this helpful?
经常遇到python调用shell命令的输出内容中有换行符,导致隐形的字符串没有匹配上。所以在对比shell命令输出的字符串,一定要在python中注意处理掉字符串结尾的换行符。
python提供了一个非常方便的方法rstrip()可以删除掉换行符
rstrip()
rstrip()甚至可以删除所有类型的尾部:
只删除新行符号(newlines)可以指定:
另外还有对应的lstrip()和rstrip()分别用于去除左边的换行符和右边的换行符
lstrip()
在日常调用shell中,实际上shell也提供了一个去除换行符的方法,就是使用echo -n $(XXXXX),此时调用的指令的换行符也会被去除。
echo -n $(XXXXX)
>>> 'test string\n'.rstrip() 'test string'
>>> 'test string \n \r\n\n\r \n\n'.rstrip() 'test string'
>>> 'test string \n \r\n\n\r \n\n'.rstrip('\n') 'test string \n \r\n\n\r '
>>> s = " \n\r\n \n abc def \n\r\n \n " >>> s.strip() 'abc def' >>> s.lstrip() 'abc def \n\r\n \n ' >>> s.rstrip() ' \n\r\n \n abc def'