如何在Python中从多个文件创建行生成器

Vim*_*mos 1 python generator

以下发电机有什么问题?

for file in file_list:
    fh = open(file, 'r')
    while True :
        yield fh.readline()
    fh.close()
Run Code Online (Sandbox Code Playgroud)

Joh*_*rra 8

问题是你永远不会打破你的无限循环,因为它永远只会从一个文件中产生线条.

检查fileinput是否存在此类问题.这样就足够了:

import fileinput
for line in fileinput.input(your_list_of_filenames):
    process(line)
Run Code Online (Sandbox Code Playgroud)

当然,您必须process根据您的目的定义功能.

  • 那个旧的doc页让我颤抖.这是[当前的](http://docs.python.org/2/library/fileinput.html). (2认同)