我想遍历一个文件并返回每一行:
for i in master_file:
columns = re.split('\s{2,}', i)
last_name = columns[1]
print(last_name)
如果我用 return
替换 print
它只会返回第一行的 columns[1]
,但我想返回它所有的线。所以我可以在我的函数的其他地方使用该信息。
最佳答案
在这种情况下,您需要yield
值而不是return
:
for i in master_file:
columns = re.split('\s{2,}', i)
last_name = columns[1]
yield last_name
完整示例:
def readLastNames ():
for i in master_file:
columns = re.split('\s{2,}', i)
last_name = columns[1]
yield last_name
for last_name in readLastNames ():
print (last_name)
非常粗略的解释:yield
将参数和控制 传递回调用上下文,保留被调用上下文的状态,然后从那里恢复。
关于python - 退出for循环并在文件末尾返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22887591/