Python实现按两行一组读取文件并处理的方法求助
解决方案
下面提供几种实用的方法来实现每两行一组的迭代处理:
方法一:利用range步长遍历(直观易读)
这种方法通过控制索引步长为2,逐个取出每组的两行,还能方便处理列表长度为奇数的边界情况:
accounts_list = [] with open('test.txt', 'r') as f: accounts_list = [line.strip() for line in f] # 从索引0开始,每次步进2,遍历所有分组 for i in range(0, len(accounts_list), 2): # 获取当前组的第一行 first_line = accounts_list[i] # 检查是否存在第二行,避免索引越界 second_line = accounts_list[i+1] if (i+1) < len(accounts_list) else None # 这里替换成你的业务处理逻辑 print(f"处理分组:{first_line} | {second_line}")
方法二:使用itertools.zip_longest(简洁高效)
借助itertools模块的工具函数,可以更简洁地完成分组,适合需要统一处理奇偶长度列表的场景:
from itertools import zip_longest accounts_list = [] with open('test.txt', 'r') as f: accounts_list = [line.strip() for line in f] # 将列表迭代器重复两次,再按最长匹配分组,奇数长度时最后一组补None for first_line, second_line in zip_longest(*[iter(accounts_list)]*2): # 执行你的处理逻辑 print(f"处理分组:{first_line} | {second_line}")
方法三:切片+zip(适用于确定偶数长度的场景)
如果能保证test.txt的行数一定是偶数,可以用列表切片配合zip快速分组:
accounts_list = [] with open('test.txt', 'r') as f: accounts_list = [line.strip() for line in f] # 分别取偶数索引和奇数索引的元素,两两配对 for first_line, second_line in zip(accounts_list[::2], accounts_list[1::2]): # 执行你的处理逻辑 print(f"处理分组:{first_line} | {second_line}")
内容的提问来源于stack exchange,提问作者Irinel Iovan
相关产品推荐
相关产品推荐

