You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从文件中按行对读取输入并分组处理

按行对分组处理文件内容的解决方案

嘿,我来帮你搞定这个按行分组处理的需求!你的现有代码只处理了第一组数据,要实现对整个文件的行对循环处理,我们只需要加个循环持续读取每一对行就好啦。

核心思路

我们需要重复执行以下步骤,直到文件读取完毕:

  • 读取第一行(存储喜爱数字的行)
  • 读取第二行(存储姓名的行)
  • 处理这一组数据(拆分姓名、存储数字行、输出内容)

修改后的完整代码

import sys

def process_line_pairs():
    while True:
        # 读取数字行并去除首尾空白
        numbers_line = sys.stdin.readline().strip()
        # 如果读到空字符串,说明文件已经读完,退出循环
        if not numbers_line:
            break
        
        # 读取对应的姓名行
        name_line = sys.stdin.readline().strip()
        # 同样检查姓名行是否为空(避免文件末尾只剩一行的情况)
        if not name_line:
            break
        
        # 将数字行存入数组(这里你可以根据后续需求调整存储方式)
        number_array = [numbers_line]
        # 拆分姓名,用split()不带参数会自动处理任意数量的空白分隔符
        first_name, last_name = name_line.split()
        
        # 输出测试内容(后续可以替换成你的业务逻辑)
        print(first_name)
        print(last_name)
        print(number_array)

if __name__ == "__main__":
    process_line_pairs()

代码说明

  1. 循环读取:用while True构建无限循环,直到读取到空行(文件结束)才退出
  2. 空行判断:每次读取行后先判断是否为空,避免处理无效内容
  3. 姓名拆分优化:用split()代替split(" "),这样即使姓名中间有多个空格也能正确拆分
  4. 可扩展性:你可以把输出部分替换成自己的后续处理逻辑,比如把每组数据存入列表、写入数据库等

测试验证

当你输入示例内容:

1 2 3
John Doe
4 5 6
Queen Mary

运行代码后会得到你期望的输出:

John
Doe
['1 2 3']
Queen
Mary
['4 5 6']

内容的提问来源于stack exchange,提问作者Jester_of_brothers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:52:29