在python中,我们可以逐行迭代文件。但是,如果我想要两行迭代呢?
f = open("filename")
for line1, line2 in ?? f ??:
do_stuff(line1, line2)
答案 0 :(得分:5)
使用itertools recipes中的grouper
功能。
from itertools import zip_longest
def grouper(n, iterable, fillvalue=None):
"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return zip_longest(fillvalue=fillvalue, *args)
f = open(filename)
for line1, line2 in grouper(2, f):
print('A:', line1, 'B:', line2)
使用zip
代替zip_longest
来忽略末尾的奇数行。
{2}中的zip_longest
函数名为izip_longest
。
答案 1 :(得分:3)
你可以这样做:
with open('myFile.txt') as fh:
for line1 in fh:
line2 = next(fh)
# Code here can use line1 and line2.
如果您有奇数行,则可能需要在StopIteration
的调用中注意next(fh)
错误。 izip_longest
的解决方案可能更能够避免这种需求。
答案 2 :(得分:1)
f = open("file")
content = f.readlines()
print content[0] #You can choose lines from a list.
print content[1]
这是一种方法。现在,您可以使用for循环遍历列表并使用它执行任何操作,或者明确选择行。