如果语句没有在文件中捕获空行

时间:2015-10-01 23:25:26

标签: python if-statement python-3.4

我目前正在编写一个静态函数,其中一个打开的文件对象作为参数传入。然后它读取文件,如果该行为空,则返回False。如果该行不为空,则使用有问题的行加上接下来的三行来创建Person类的新对象(在我的模块中设计的类)。出于某种原因,我的if语句没有捕捉换行符,无论我尝试了什么方法,并且因为它而一直收到错误。我做错了什么?

@staticmethod
def read_person(fobj):
    p_list = []
    for line in fobj:
        if line.isspace() or line == "\n":
            return False
        else:
            p_list.append(line)
    return Person(p_list[0],p_list[1],p_list[2],p_list[3])

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你想要的魔力是:

if line.strip() == "":

您可以在空行处理中遇到所有可能的小情况。是空格换行吗?空间 - 空间 - 换行?标签换行?空间的选项卡换行?等

所以,不要检查所有这些情况。使用strip()删除所有左右空格。如果你剩下一个空字符串,那就是一个空行,鲍勃是你的叔叔。