python3:在循环整个文件时再次执行for循环

时间:2018-06-15 11:18:13

标签: python python-3.x for-loop eof

以下代码失败,如果是文件结尾而不是空行。这是一个简单的解析器,它会查找=符号,然后在读取空行时立即返回内容

def readFile():
    keyFlag=False
    for line in open(AAA,"r").readlines():
       if "=" in line: keyFlag=True
       if key.Flag: content+=line
       if line.ispace(): return content

问题是当文件结束时,for循环停止。除了插入标志之外,还有一种优雅的循环方法吗?

2 个答案:

答案 0 :(得分:2)

如果该行为空白,您应该在循环之外return,然后在循环内只有break

def readFile():
    flag = False
    content = ""
    for line in open(AAA):
       if '=' in line:
           flag = True
       if flag:
           content += line
       if line.isspace(): 
           break
    return content

答案 1 :(得分:1)

使用while循环:

data = open(AAA,"r").readlines()
i = 0
while i < len(data):
   content+= data[i]
   i+=1
return content