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

Python匹配两文件邮箱字段新增位置列解决重复输出问题

问题原因

你当前代码的重复输出问题来自逻辑错误:对每一条凭证记录,都会遍历整个所在地文件的所有行,每遍历一行所在地记录就输出一次结果,所在地文件有多少行,每条凭证就会对应输出多少次,最终产生大量重复行。

修复方案

调整逻辑,先将所有邮箱和所在地的映射关系存入字典,再遍历凭证文件做匹配,每条凭证仅输出一次结果:

# 先读取所在地信息存入字典,避免重复遍历文件
location_map = {}
with open("location.txt", "r", encoding="utf-8") as b_file:
    for line in b_file:
        line = line.strip()
        if not line:
            continue
        email, loc = line.split(":", 1)
        location_map[email] = loc

# 遍历凭证文件做匹配
with open("test.txt", "r", encoding="utf-8") as a_file:
    for line in a_file:
        line = line.strip()
        if not line:
            continue
        email, credential = line.split(":", 1)
        # 查找所在地,找不到默认返回BLANK
        loc = location_map.get(email, "BLANK")
        print(f"{email}:{credential}:{loc}")

修改说明

  • 仅需读取一次所在地文件,映射存入字典后查询效率为O(1),相比原逻辑重复打开遍历文件性能提升明显
  • 每条凭证记录仅做一次查询、一次输出,从根源解决重复行问题
  • 增加空行跳过逻辑,避免文件存在空行时触发索引错误
  • split指定最大分割次数为1,避免凭证、所在地字段本身包含冒号时拆分出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:36:02