Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从多个文件中一次读取一行_Python_File_Io - Fatal编程技术网

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

Python 从多个文件中一次读取一行,python,file,io,Python,File,Io,我有一堆文件名。我需要从每个文件中一次读取一行,进行一些处理,然后从每个文件中再次读取一行,进行一些处理,等等 我正在寻找关于如何以一种更类似于蟒蛇的方式来做这件事的建议。我知道每个文件中存在的行数,所以我现在正在硬编码,但我不想这样做 更新: 所有文件的行数都相同 更新2: 至少有30个不同的文件 filenames = [] line_count = 400 fileobjs = [open(i, 'r') for i in filenames] for i in xrange(line_c

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

我正在寻找关于如何以一种更类似于蟒蛇的方式来做这件事的建议。我知道每个文件中存在的行数,所以我现在正在硬编码,但我不想这样做

更新: 所有文件的行数都相同

更新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)

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

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

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

 with open('File1','r') as FileA, open('File2','r') as FileB:
     for lineA,lineB in zip(FileA,FileB):
          print lineA,lineB
这个怎么样

from itertools import izip_longest
for file_lines in izip_longest(*map(open,filenames)):
    for line in file_lines:
        if line:
            # process line
这个怎么样

from itertools import izip_longest
for file_lines in izip_longest(*map(open,filenames)):
    for line in file_lines:
        if line:
            # process line

每个文件都有相同的行数?是的,它们都有相同的行数。我会更新这个问题。谢谢。我认为使用
文件读取行
阅读所有内容可能会更干净。我还建议使用
块来打开文件,因为它也可以处理关闭,这被认为是pythonic。你有什么理由逐行阅读吗?是的,这正是我所需要的。行数可能非常大,因此我不希望将其全部读入内存。每个文件都有相同的行数?是的,它们都有相同的行数。我会更新这个问题。谢谢。我认为使用
文件读取行
阅读所有内容可能会更干净。我还建议使用
块来打开文件,因为它也可以处理关闭,这被认为是pythonic。你有什么理由逐行阅读吗?是的,这正是我所需要的。行数可能非常大,因此我不希望将其全部读入内存。
zip对我来说是个好主意,但是如果我们有两个以上的文件呢?如果我们有一个
fileobjs
列表,但我们不知道它有多大呢?
zip
听起来是个好主意,但是如果我们有两个以上的文件呢?如果我们有一个
fileobjs
列表,但我们不知道它有多大呢?