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

如何用Python合并两个文本文件的列并按指定格式输出?

解决方案

我来帮你搞定这个问题!你之前尝试用字典和列表的思路完全没问题,大概率是在记录顺序或者字段处理细节上出了小疏漏。下面是适配你Python 3.0和PyCharm环境的完整实现方案:

步骤思路

  1. 分别读取两个文件的内容,把它们解析成以ID为键的字典——这样能快速匹配对应的姓名和年龄。
  2. 由于Python 3.0的字典不保存插入顺序,我们需要单独记录File1里ID的出现顺序,保证输出和你期望的顺序一致。
  3. 最后按照记录的ID顺序,把每个条目对应的「ID + 姓,名 + 年龄」拼接起来,输出成指定格式。

完整代码

# 处理File1.txt:提取ID、整理姓名格式并记录ID顺序
id_sequence = []
name_dict = {}

with open('File1.txt', 'r') as file1:
    # 读取内容并按空格分割成单个记录
    records = file1.read().strip().split()
    for rec in records:
        # 按|分割字段,拆分出ID、名、姓
        user_id, first_name, last_name = rec.split('|')
        id_sequence.append(user_id)
        # 按「姓,名」的格式存储
        name_dict[user_id] = f"{last_name},{first_name}"

# 处理File2.txt:提取ID和对应年龄
age_dict = {}
with open('File2.txt', 'r') as file2:
    records = file2.read().strip().split()
    for rec in records:
        user_id, age = rec.split('|')
        age_dict[user_id] = age

# 生成最终输出内容
output_parts = []
for user_id in id_sequence:
    output_parts.append(user_id)
    output_parts.append(name_dict[user_id])
    output_parts.append(age_dict[user_id])

# 用空格拼接所有片段,得到期望格式
final_result = ' '.join(output_parts)
print(final_result)

运行效果

执行代码后会输出:

2 Tucker,Stacey 26 4 Mirza,Simi 31 9 Singh,Naved 30 6 Patel,Ram 17 7 Pruth,Joe 35

完全匹配你想要的输出格式!

关键细节说明

  • 为什么要单独记录id_sequence?因为Python 3.0的字典不保留插入顺序,如果直接遍历字典,输出顺序会混乱,所以必须从File1里把ID的原始顺序存下来。
  • 姓名格式特意处理成last_name,first_name,刚好对应你需要的「姓在前、名在后」的格式,别搞反哦。
  • 读取文件时用strip()是为了去掉文件首尾的换行或空白字符,避免分割出无效的空字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:37:22