我目前正在编写一个静态函数,其中打开的文件对象作为参数传入。然后它读取文件,如果该行为空,则返回 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/