去除空格/制表符/换行符 – python

我试图删除Linux上的Python 2.7中的所有空格/制表符/换行符。

我写这个,应该做这个工作:

myString="I want to Remove all white \t spaces, new lines \n and tabs \t" myString = myString.strip(' \n\t') print myString 

输出:

 I want to Remove all white spaces, new lines and tabs 

这似乎是一个简单的事情,但我在这里失踪的东西。 我应该导入一些东西吗?

使用str.split([sep[, maxsplit]])没有sepsep=None

从文档 :

如果没有指定sep或为None ,则应用不同的分割algorithm:将连续空白的运行视为单个分隔符,并且如果string具有前导空格或尾随空格,则结果将在开始或结束处不包含空string。

演示:

 >>> myString.split() ['I', 'want', 'to', 'Remove', 'all', 'white', 'spaces,', 'new', 'lines', 'and', 'tabs'] 

在返回的列表上使用str.join来获得这个输出:

 >>> ' '.join(myString.split()) 'I want to Remove all white spaces, new lines and tabs' 

如果你想删除多个空格项并用单个空格replace它们,最简单的方法是使用这样的正则expression式:

 >>> import re >>> myString="I want to Remove all white \t spaces, new lines \n and tabs \t" >>> re.sub('\s+',' ',myString) 'I want to Remove all white spaces, new lines and tabs ' 

如果需要,可以使用.strip()删除尾部空格。

 import re mystr = "I want to Remove all white \t spaces, new lines \n and tabs \t" print re.sub(r"\W", "", mystr) Output : IwanttoRemoveallwhitespacesnewlinesandtabs 

看看这个相关问题的答案: 如何修剪空白(包括制表符)?

strip()仅删除前导字符和尾随字符,而不是所有字符。