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

如何将大文件中相同内容行替换为对应相同ID,附现有问题代码

原代码问题点

  • 嵌套循环+文件指针操作逻辑混乱,会出现内容覆盖、匹配失效问题
  • 未提前建立文本与ID的映射关系,重复出现的文本会被分配错误的新ID
  • 没有统一处理行首尾空白,会导致内容匹配不一致

修改后实现代码

# 读取源文件所有行,去除首尾空白预处理
with open("filein.txt", "r") as f:
    raw_lines = [line.strip() for line in f if line.strip()]

# 构建文本到唯一ID的映射关系,首次出现按顺序分配ID
text_id_map = {}
id_counter = 1
for line_content in raw_lines:
    if line_content not in text_id_map:
        text_id_map[line_content] = str(id_counter)
        id_counter += 1

# 替换所有行内容后写入目标文件
output_content = "\n".join([text_id_map[content] for content in raw_lines])
with open("filein2.txt", "w") as f:
    f.write(output_content)

运行结果

执行后filein2.txt的内容完全符合预期:

1
2
3
4
5
1
1
1
2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:48:01