从多个文件中一次读取一行

2024-03-29 09:38:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆文件名。我需要从每个文件中一次读取一行,做一些处理,然后从每个文件中再次读取一行,做一些处理等等。你知道吗

我正在寻找建议,如何做到这一点,在一个更Python的方式。我知道每个文件中存在的行数,所以我现在正在硬编码,但我不想这样做。你知道吗

更新: 所有文件的行数都相同。你知道吗

更新2: 至少有30个不同的文件。你知道吗

filenames = []
line_count = 400
fileobjs = [open(i, 'r') for i in filenames]
for i in xrange(line_count):
    lines = []
    for each_fo in fileobjs:
        for each_line in each_fo:
            lines.append(each_line)
            break
    process(lines)

Tags: 文件in编码for文件名count方式line
3条回答

这个怎么样?你知道吗

from itertools import izip_longest
for file_lines in izip_longest(*map(open,filenames)):
    for line in file_lines:
        if line:
            # process line
lines = [next(fo) for fo in fileobjs]
process(lines)

这将一次逐行读取两个文件

 with open('File1','r') as FileA, open('File2','r') as FileB:
     for lineA,lineB in zip(FileA,FileB):
          print lineA,lineB

相关问题 更多 >