web-dev-qa-db-fra.com

Comment vérifier si le texte est "vide" (espaces, tabulations, nouvelles lignes) en Python?

Comment puis-je tester si la chaîne est vide en Python?

Par exemple,

"<space><space><space>" est vide, ainsi

"<space><tab><space><newline><space>", de même

"<newline><newline><newline><tab><newline>", etc.

183
bodacydo
yourString.isspace()

"Renvoie true s'il n'y a que des caractères d'espacement dans la chaîne et s'il y a au moins un caractère, false sinon."

Combinez cela avec un cas spécial pour gérer la chaîne vide.

Alternativement, vous pouvez utiliser

strippedString = yourString.strip()

Et puis vérifiez si strippedString est vide.

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

Vous voulez utiliser la méthode isspace()

str. isspace ()

Renvoie true s'il n'y a que des caractères d'espacement dans la chaîne et s'il y a au moins un caractère, false sinon.

Cela est défini sur chaque objet string. Voici un exemple d'utilisation pour votre cas d'utilisation spécifique:

if aStr and (not aStr.isspace()):
    print aStr
25
Eric Wang
24
SilentGhost

pour ceux qui s'attendent à un comportement comme Apache StringUtils.isBlank ou Guava Strings.isNullOrEmpty :

if mystring and mystring.strip():
    print "not blank string"
else:
    print "blank string"
11
kommradHomer

Vérifiez la longueur de la liste donnée par la méthode split ().

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

Ou Comparez la sortie de la méthode strip () avec null.

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

Voici une réponse qui devrait fonctionner dans tous les cas:

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

Si la variable est None, elle s’arrêtera à not s et ne sera plus évaluée (puisque not None == True). Apparemment, la méthode strip() prend en charge les cas habituels de tabulation, de nouvelle ligne, etc.

3
fralau

Je suppose que dans votre scénario, une chaîne vide est une chaîne qui est vraiment vide ou qui contient tous les espaces.

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

Notez que ceci ne vérifie pas None

2
James Wierzba

Pour vérifier si une chaîne n'est qu'un espace ou une nouvelle ligne

Utilisez ce code 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)
1
J0KER11

J'ai utilisé le suivant:

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

Ressemblance avec la méthode statique de chaîne 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
0
broadband