python3: 遍历整个文件时再做一次for循环

python3: do a for loop once more when looped over the whole file

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

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 循环停止。除了插入标志之外,是否有一种优雅的方式再次循环?

你应该 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

使用 while 循环:

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