我正在寻找一种同时从两个大文件中读取而无需将整个数据存入内存的方法。我想从第一个文件中解析M行,第二个文件中有N行。对它有任何明智和记忆效率的解决方案吗?
到目前为止,我知道如何逐行同时读取两个文件。但我不知道是否可以扩展此代码以读取第一个文件中的4行和第二个文件中的1行。
from itertools import izip
with open("textfile1") as textfile1, open("textfile2") as textfile2:
for x, y in izip(textfile1, textfile2):
x = x.strip()
y = y.strip()
print("{0}\t{1}".format(x, y))
答案 0 :(得分:0)
只需打开文件并使用例如line = textfile1.readline()
从其中一个文件中读取一行。
line
将包含一个尾随换行符。当你返回一个空字符串时,你会看到你到了最后。
答案 1 :(得分:0)
那将从file1读取接下来的n行,然后在其他一些代码
中读取文件2中的下一行def nextlines(number, file):
n_items = []
index = number
while(index > 0):
try:
n_items += [next(file).strip()]
index -= 1
except StopIteration:
break
return n_items
n = 5
m = 7
l1 = []
l2 = []
with open('file.dat', 'r') as file1:
with open('file.dat', 'r') as file2:
#some code
l1 = nextlines(n, file1)
l2 = nextlines(m, file2)
#some other code
file2.close()
file1.close()
print l1
print l2