python - If 语句未捕获文件中的空行

标签 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])

感谢您的帮助!

最佳答案

你想要的魔法是:

if line.strip() == "":

您可能会陷入空行处理中所有可能的小情况。是空格换行吗?空间-空间-换行符?制表符换行符?空格-制表符-换行符?等等

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

关于python - If 语句未捕获文件中的空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32898323/

相关文章:

python - Python 和 C 之间的性能差异

python - 类型错误 : concat() got multiple values for argument 'axis'

r - 如果 "OR"有多个条件

java - 无论输入什么,都只会执行 if...else 梯形图的 else 语句。为什么会发生这种情况?

Python-尝试乘以列表中的项目

python - 什么是 DynamicClassAttribute 以及如何使用它?

python - 在 python 3.4 中使用正则表达式的语法无效

python - Heroku 免费层,用于在一个应用程序中实现不间断的 Web 和工作进程

python - 异构列表切片

bash - 在 Bash 中使用多个表达式复合 'if' 语句