【发布时间】:2015-03-27 14:40:38
【问题描述】:
我有一堆文件名。我需要从每个文件中一次读取一行,进行一些处理,然后从每个文件中再次读取一行,进行一些处理等等。
我正在寻找有关如何以更 Pythonic 的方式执行此操作的建议。我知道每个文件中存在的行数,所以我现在对其进行硬编码,但我不想这样做。
更新: 这些文件都有相同的行数。
更新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)
【问题讨论】:
-
每个文件的行数都一样吗?
-
是的,它们都有相同的行数。我会更新这个问题。谢谢。
-
我认为使用
file_obj.readlines阅读所有内容可能会更干净。我还建议使用with块来打开文件,因为它也处理关闭并且它被认为是pythonic。你有理由逐行阅读吗? -
是的,这是我需要的。行数可能非常非常大,所以我不希望将其全部读入内存。