Cómo comprobar si el texto es “vacías” (espacios, tabulaciones, saltos de línea) en Python?
Pregunta
¿Cómo puedo comprobar si la cadena está vacía en Python?
Por ejemplo,
"<space><space><space>"
está vacía, por lo que es
"<space><tab><space><newline><space>"
, por lo que es
"<newline><newline><newline><tab><newline>"
, etc.
Solución
yourString.isspace()
"Devuelve verdadero si sólo hay espacios en blanco en la cadena y hay al menos un carácter, en caso contrario."
Combine eso con un caso especial para el manejo de la cadena vacía.
Como alternativa, puede utilizar
strippedString = yourString.strip()
Y a continuación, comprobar si strippedString está vacía.
Otros consejos
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [bool(not s or s.isspace()) for s in tests]
[False, True, True, True, True]
>>>
Se desea utilizar el método de href="https://docs.python.org/2/library/stdtypes.html#str.isspace"> isspace()
str. isspace ()
Devuelve verdadero si sólo hay espacios en blanco en la cuerda y hay al menos un carácter, en caso contrario.
Eso se define en cada objeto de cadena. Aquí es un ejemplo de uso para el caso de uso específico:
if aStr and (not aStr.isspace()):
print aStr
para aquellos que esperan un comportamiento como el Apache StringUtils.isBlank o Guava Strings.isNullOrEmpty :
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
Comprobar la longitud de la lista dada por el método split () de.
if len(your_string.split()==0:
print("yes")
O Comparar salida tira () método de con nulo.
if your_string.strip() == '':
print("yes")
Esta es una respuesta que debería funcionar en todos los casos:
def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
Si la variable es Ninguno, se detiene en not s
and no evaluar más a fondo (ya not None == True
). Al parecer, el strip()
method se encarga de los casos habituales de tabulación, nueva línea, etc.
Estoy asumiendo en su caso, una cadena vacía es una cadena que es verdaderamente vacía o una que contiene todos los espacios en blanco.
if(str.strip()):
print("string is not empty")
else:
print("string is empty")
Tenga en cuenta esto no comprueba None
utilicé siguiente:
if str and not str.isspace():
print('not null and not empty nor whitespace')
else:
print('null or empty or whitespace')
Para comprobar si una cadena está a espacios o salto de línea
Utilice este código simple
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)
La semejanza con c # string método estático 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