如何在Python中检查文本是否为“空”(空格,制表符,换行符)?


216

如何在Python中测试字符串是否为空?

例如,

"<space><space><space>" 是空的,所以是

"<space><tab><space><newline><space>",也是

"<newline><newline><newline><tab><newline>"

Answers:


310

yourString.isspace()

“如果字符串中只有空格字符并且至少有一个字符,则返回true,否则返回false。”

结合特殊情况处理空字符串。

或者,您可以使用

strippedString = yourString.strip()

然后检查strippedString是否为空。


如果string包含不间断空格,charcode U+00A0或,则此操作在Python 2.4中失败ALT+160。在Python 2.7中看起来固定。
库姆巴(Kumba)2012年

18
请记住,这不检查None,或''
PARTH特拉

1
在python 2.7.13中,isspace()将不间断空间视为一个空间。真好!
Iching Chang

您可能还希望排除空字符串,在这种情况下,您可以执行以下操作:if len(str) == 0 or str.isspace():
Joe

55
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [bool(not s or s.isspace()) for s in tests]
[False, True, True, True, True]
>>>

32

您要使用的isspace()方法

海峡 isspace()

如果字符串中只有空格字符并且至少有一个字符,则返回true,否则返回false。

这是在每个字符串对象上定义的。这是您的特定用例的用法示例:

if aStr and (not aStr.isspace()):
    print aStr



6

检查split()方法给定的列表的长度。

if len(your_string.split()==0:
     print("yes")

或者将strip()方法的输出与null进行比较。

if your_string.strip() == '':
     print("yes")

1
没有理由分割字符串,len()对字符串起作用。另外,OP并不是要测试空字符串,而是要测试所有空格的字符串。第二种方法也不错。另外,在python中不需要围绕条件的括号。
NeilK

1
奇怪的是,第一种方法实际上是检查不是一个好办法没有的字符是空格,如果更换==0使用==1
疯狂的物理学家

3

这是在所有情况下都适用的答案:

def is_empty(s):
    "Check whether a string is empty"
    return not s or not s.strip()

如果变量为None,它将在处停止not s并且不再进行评估(因为not None == True)。显然,该strip()方法可以处理tab,换行符等常见情况。


2

我假设在您的情况下,空字符串是真正为空的字符串或包含所有空白的字符串。

if(str.strip()):
    print("string is not empty")
else:
    print("string is empty")

请注意,这不会检查 None


2

我使用以下内容:

if str and not str.isspace():
  print('not null and not empty nor whitespace')
else:
  print('null or empty or whitespace')

1

检查字符串只是空格还是换行符

使用这个简单的代码

mystr = "      \n  \r  \t   "
if not mystr.strip(): # The String Is Only Spaces!
    print("\n[!] Invalid String !!!")
    exit(1)
mystr = mystr.strip()
print("\n[*] Your String Is: "+mystr)

1

与c#字符串静态方法类似isNullOrWhiteSpace。

def isNullOrWhiteSpace(str):
  """Indicates whether the specified string is null or empty string.
     Returns: True if the str parameter is null, an empty string ("") or contains 
     whitespace. Returns false otherwise."""
  if (str is None) or (str == "") or (str.isspace()):
    return True
  return False

isNullOrWhiteSpace(None) -> True // None equals null in c#, java, php
isNullOrWhiteSpace("")   -> True
isNullOrWhiteSpace(" ")  -> True

您可以return (str is None) or (str == "") or (str.isspace())
亚历山大-恢复莫妮卡

哦,都None""都falsy,所以你可以:return not str or str.isspace()
亚历山大-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.