在Python中修剪一个string

如何从Python中的string中删除前导空格和尾部空格?

例如:

" Hello " --> "Hello" " Hello" --> "Hello" "Hello " --> "Hello" "Bob has a cat" --> "Bob has a cat" 

只有一个空间,或所有这样的空间? 如果第二个string已经有一个.strip()方法:

 >>> ' Hello '.strip() 'Hello' >>> ' Hello'.strip() 'Hello' >>> 'Bob has a cat'.strip() 'Bob has a cat' >>> ' Hello '.strip() # ALL spaces at ends removed 'Hello' 

如果你只需要删除一个空间,你可以这样做:

 def strip_one_space(s): if s.endswith(" "): s = s[:-1] if s.startswith(" "): s = s[1:] return s >>> strip_one_space(" Hello ") ' Hello' 

另外请注意, str.strip()删除其他空格字符(例如制表符和换行符)。 要仅删除空格,可以将要删除的字符指定为strip的参数,即:

 >>> " Hello\n".strip(" ") 'Hello\n' 

正如上面的答案所指出的那样

 myString.strip() 

将删除所有前导和尾随空白字符,如\ n,\ r,\ t,\ f,空格。

为了更灵活地使用以下内容

  • 删除只有前导空白字符: myString.lstrip()
  • 只删除尾部的空白字符: myString.rstrip()
  • 删除特定的空白字符: myString.strip('\n')myString.lstrip('\n\r')myString.rstrip('\n\t')等等。

更多细节可在文档中find

strip不限于空白字符:

 # remove all leading/trailing commas, periods and hyphens title = title.strip(',.-') 
 myString.strip() 

你想strip():

 myphrases = [ " Hello ", " Hello", "Hello ", "Bob has a cat" ] for phrase in myphrases: print phrase.strip()