如何在python中并行迭代任意数量的文件?

如何在python中并行迭代任意数量的文件?,python,loops,Python,Loops,我在名为路径的列表中有一个文件对象列表 我希望能够遍历并读取每个文件的第一行,对这个n元组数据做一些处理,然后移动到每个文件的第二行。path中的文件对象数是任意的 这可能吗 import itertools for line_tuple in itertools.izip(*files): whatever() 我会使用zip,但这会将文件的全部内容读入内存。请注意,文件应该是文件对象的列表;我不知道你所说的“文件处理程序列表”是什么意思。这取决于它的“任意性”。只要数量小于操作系统

我在名为
路径的列表中有一个文件对象列表

我希望能够遍历并读取每个文件的第一行,对这个n元组数据做一些处理,然后移动到每个文件的第二行。
path
中的文件对象数是任意的

这可能吗

import itertools
for line_tuple in itertools.izip(*files):
    whatever()
我会使用
zip
,但这会将文件的全部内容读入内存。请注意,
文件
应该是文件对象的列表;我不知道你所说的“文件处理程序列表”是什么意思。这取决于它的“任意性”。只要数量小于操作系统的限制,那么
itertools.izip
就可以正常工作(或者
itertools.izip\u longest
,视情况而定)


如果你的文件比你的操作系统允许你打开的文件多,那么你就不走运了(至少就简单的解决方案而言)。

我想到的第一个想法是下面的代码,它看起来太简单了

fp_list = []
for file in path_array:
    fp = open(file)
    fp_list.append(fp)

line_list = []
for fp in fp_list:
    line = fp.readline()
    line_list.append(line)
    ## you code here process the line_list

for fp in fp_list:
    fp.close()

python3.x兼容性说明:
itertools.izip
->
zip
itertools.izip\u longest
->
itertools.zip\u longest
。我的意思是说“文件描述符”或“文件对象”,就像你说的那样。我编辑了我的原始文件,并将“文件处理程序”更改为“文件对象”。谢谢
fp_list = []
for file in path_array:
    fp = open(file)
    fp_list.append(fp)

line_list = []
for fp in fp_list:
    line = fp.readline()
    line_list.append(line)
    ## you code here process the line_list

for fp in fp_list:
    fp.close()