Как проверить, является ли текст «пустым» (пробелы, табуляции, переводы строк) в Python? - PullRequest
176 голосов
/ 09 марта 2010

Как я могу проверить, является ли строка пустой в Python?

Например,

"<space><space><space>" пусто, равно

"<space><tab><space><newline><space>", так же, как и

"<newline><newline><newline><tab><newline>" и т. Д.

Ответы [ 11 ]

261 голосов
/ 09 марта 2010
yourString.isspace()

"Вернуть true, если в строке есть только пробельные символы и хотя бы один символ, в противном случае - false."

Объедините это со специальным регистром для обработки пустой строки.

В качестве альтернативы, вы можете использовать

strippedString = yourString.strip()

А затем проверьте, является ли strippedString пустым.

46 голосов
/ 09 марта 2010
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [bool(not s or s.isspace()) for s in tests]
[False, True, True, True, True]
>>>
24 голосов
/ 10 января 2015

Вы хотите использовать метод isspace()

ул. isspace ()

Вернуть true, если в строке есть только пробельные символы и есть хотя бы один символ, в противном случае - false.

Это определено для каждого строкового объекта. Вот пример использования для вашего конкретного случая использования:

if aStr and (not aStr.isspace()):
    print aStr
24 голосов
/ 09 марта 2010
11 голосов
/ 10 февраля 2015

для тех, кто ожидает поведение, подобное apache StringUtils.isBlank или Guava Strings.isNullOrEmpty :

if mystring and mystring.strip():
    print "not blank string"
else:
    print "blank string"
5 голосов
/ 04 февраля 2015

Проверка длины списка, заданного методом split ().

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

Или Сравните вывод метода strip () со значением null.

if your_string.strip() == '':
     print("yes")
3 голосов
/ 16 марта 2018

Вот ответ, который должен работать во всех случаях:

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

Если переменная равна None, она остановится на not s и больше не будет оцениваться (начиная с not None == True). По-видимому, метод strip() учитывает обычные случаи табуляции, новой строки и т. Д.

2 голосов
/ 21 сентября 2017

Я предполагаю, что в вашем сценарии пустая строка - это действительно пустая строка или строка, которая содержит все пробелы.

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

Обратите внимание, что для проверки None

1 голос
/ 18 января 2019

Чтобы проверить, является ли строка просто пробелами или новой строкой

Используйте этот простой код

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 голос
/ 24 июня 2018

Я использовал следующее:

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