it-swarm.com.de

Wie überprüfe ich, ob der Text in Python "leer" ist (Leerzeichen, Tabulatoren, Zeilenumbrüche)?

Wie kann ich testen, ob der String in Python leer ist?

Zum Beispiel,

"<space><space><space>" ist leer, so ist

"<space><tab><space><newline><space>", so ist es

"<newline><newline><newline><tab><newline>", usw.

183
bodacydo
yourString.isspace()

"Gibt true zurück, wenn die Zeichenfolge nur Leerzeichen enthält und mindestens ein Zeichen, andernfalls false."

Kombinieren Sie dies mit einem Sonderfall für die Behandlung der leeren Zeichenfolge.

Alternativ könnten Sie verwenden

strippedString = yourString.strip()

Überprüfen Sie dann, ob strippedString leer ist.

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

Sie möchten die isspace() -Methode verwenden

str. isspace ()

Gibt true zurück, wenn die Zeichenfolge nur Leerzeichen enthält und mindestens ein Zeichen, andernfalls false.

Das ist für jedes String-Objekt definiert. Hier ist es ein Anwendungsbeispiel für Ihren speziellen Anwendungsfall:

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

für diejenigen, die ein Verhalten wie den Apachen erwarten StringUtils.isBlank oder Guave Strings.isNullOrEmpty :

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

Überprüfen Sie die Länge der Liste der split () -Methode.

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

Oder Vergleichen Sie die Ausgabe der strip () -Methode mit null.

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

Hier ist eine Antwort, die in allen Fällen funktionieren sollte:

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

Wenn die Variable None ist, stoppt sie bei not s Und wird nicht weiter ausgewertet (seit not None == True). Anscheinend kümmert sich die strip() -Methode um die üblichen Fälle von Tab, Newline usw.

3
fralau

Ich gehe davon aus, dass in Ihrem Szenario eine leere Zeichenfolge eine Zeichenfolge ist, die wirklich leer ist oder die nur Leerzeichen enthält.

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

Beachten Sie, dass dies nicht nach None sucht.

2
James Wierzba

So überprüfen Sie, ob es sich bei einer Zeichenfolge nur um ein Leerzeichen oder eine neue Zeile handelt

Verwenden Sie diesen einfachen Code

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

Ich habe folgendes benutzt:

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

Ähnlichkeit mit der statischen Methode c # string istNullOrWhiteSpace.

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