Python是否有类似空字符串变量的功能,您可以在其中执行以下操作:

if myString == string.empty:

无论如何,检查空字符串值最优雅的方法是什么?我发现每次检查空字符串的硬编码“”都不太好。


当前回答

a = ''
b = '   '
a.isspace() -> False
b.isspace() -> True

其他回答

当您逐行读取文件并想确定哪一行是空的时,请确保使用.strip(),因为“空”行中有换行符:

lines = open("my_file.log", "r").readlines()

for line in lines:
    if not line.strip():
        continue

    # your code for non-empty lines

测试空字符串或空白字符串(更短的方式):

if myString.strip():
    print("it's not an empty or blank string")
else:
    print("it's an empty or blank string")

如果要检查字符串是否完全为空

if not mystring

因为空字符串为false但如果字符串仅为空白,则为真,因此您可能希望

if not mystring.strip()

我会在剥离之前测试无。此外,我将使用空字符串为False(或Falsy)的事实。这种方法类似于Apache的StringUtils.isBlank或Guava的Strings.isNullOrEmpty

这是我用来测试字符串是否为None或Empty或Blank的方法:

def isBlank (myString):
    return not (myString and myString.strip())

如果字符串不是None NOR Empty NOR Blank,则与测试正好相反:

def isNotBlank (myString):
    return bool(myString and myString.strip())

如果你只是使用

not var1 

无法将布尔值为False的变量与空字符串“”进行区分:

var1 = ''
not var1
> True

var1 = False
not var1
> True

但是,如果向脚本中添加一个简单的条件,则会产生差异:

var1  = False
not var1 and var1 != ''
> True

var1 = ''
not var1 and var1 != ''
> False