如何在Python中检查文本是否为“空”(空格,制表符,换行符)?

时间:2010-03-08 22:29:25

标签: python text newline tabs space

如何在Python中测试字符串是否为空?

例如,

"<space><space><space>"为空,

也是如此

"<space><tab><space><newline><space>"

也是如此

"<newline><newline><newline><tab><newline>"

11 个答案:

答案 0 :(得分:256)

yourString.isspace()

“如果字符串中只有空格字符并且至少有一个字符,则返回true,否则返回false。”

将其与处理空字符串的特殊情况相结合。

或者,您可以使用

strippedString = yourString.strip()

然后检查strippedString是否为空。

答案 1 :(得分:45)

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

答案 2 :(得分:24)

答案 3 :(得分:24)

您想使用isspace()方法

  

海峡的 isspace为()

     

如果字符串中只有空格字符,则返回true   至少有一个角色,否则就是假。

在每个字符串对象上定义。这是您特定用例的用法示例:

if aStr and (not aStr.isspace()):
    print aStr

答案 4 :(得分:11)

对于那些期望像apache StringUtils.isBlank或Guava Strings.isNullOrEmpty这样的行为的人:

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

答案 5 :(得分:5)

检查split()方法给出的列表长度。

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

或者 将strip()方法的输出与null进行比较。

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

答案 6 :(得分:3)

这是一个应该适用于所有情况的答案:

                    //Create new table and set columns and widths for Report Items
                    PdfPTable itemTable = new PdfPTable(4);

                    //Loop each row in the dataset and output
                    for (int i = 0; i < repDT.Rows.Count; i += 3)
                    {
                        float[] ITWidths = new float[] { 10f, 20f, 10f, 60f };  //4 columns by size (f) for list of multi-items on report
                        itemTable.SetWidths(ITWidths);

                        PdfPCell datesvalues = new PdfPCell(new Phrase("" + repDT.Rows[i]["OLDDATE"] + "\n" + Convert.ToDateTime(repDT.Rows[i]["INSDATE"]).ToString("dd/MM/yyyy") + "\n" + Convert.ToDateTime(repDT.Rows[i]["NEXT DATE"]).ToString("dd/MM/yyy") + "\n" + repDT.Rows[i]["CONT FREQ"].ToString() + " months", smalltext));
                        itemTable.AddCell(datesvalues);
                        PdfPCell itemdetails = new PdfPCell(new Phrase("1. " + repDT.Rows[i]["DESC"] + "\n" + "2. " + repDT.Rows[i]["PLANTNUMBER"] + "\n" + "3. " + repDT.Rows[i]["SERIALNUMBER"] + "\n" + "4. " + repDT.Rows[i]["SUBLOC"].ToString(), smalltext));
                        itemTable.AddCell(itemdetails);
                        PdfPCell swl = new PdfPCell(new Phrase("" + repDT.Rows[i]["SWL"], smalltext));
                        itemTable.AddCell(swl);
                        PdfPCell defects = new PdfPCell(new Phrase("A. " + repDT.Rows[i]["ADEFECT"] + "\n" + "B. " + repDT.Rows[i]["BDEFECT"] + "\n" + "C. " + repDT.Rows[i]["OBS"] + "\n" + "" + repDT.Rows[i]["SPARE1"].ToString(), smalltext));
                        itemTable.AddCell(defects);

                        document.NewPage();
                    }

                    document.Add(itemTable);

如果变量为None,它将停在def is_empty(s): "Check whether a string is empty" return not s or not s.strip() 并且不再进一步评估(从not s开始)。显然,not None == True方法会处理tab,换行符等常见情况。

答案 7 :(得分:2)

我假设您的场景中,空字符串是一个真正空的字符串或包含所有空格的字符串。

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

请注意,这不会检查None

答案 8 :(得分:1)

我使用了以下内容:

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

答案 9 :(得分:1)

检查字符串是否只是空格或换行符

使用此简单代码

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)

答案 10 :(得分:0)

类似于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