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

合并两个域下含用户与多Proxy地址的CSV并去重生成第三个CSV

解决两个CSV文件的Proxy地址合并去重需求

嘿,我来帮你搞定这个CSV合并的问题!根据你的需求,我们需要把两个结构一致的CSV文件合并,保留所有用户,同时将每个用户的Proxy地址去重后整理到对应的列中。下面我用Python来实现这个功能,步骤清晰且容易调整。

实现思路

  • 用字典存储每个用户对应的所有非空Proxy地址,利用集合自动去重的特性避免重复项。
  • 遍历两个输入CSV文件,收集所有用户的Proxy数据。
  • 将整理好的数据写入新的CSV文件,保持原有的列结构(第一列用户,第2-16列Proxy),不足15个Proxy的位置补空。

完整代码示例

import csv
from collections import defaultdict

# 初始化字典:键为用户名,值为存储Proxy的集合(自动去重)
user_proxies = defaultdict(set)

# 替换成你实际的两个CSV文件路径
input_csvs = ["csv1.csv", "csv2.csv"]

# 读取两个CSV文件,收集Proxy数据
for csv_path in input_csvs:
    with open(csv_path, mode='r', newline='', encoding='utf-8') as file:
        csv_reader = csv.reader(file)
        # 读取表头(如果你的CSV没有表头,直接删除这一行和下面的header变量)
        header = next(csv_reader)
        
        for row in csv_reader:
            username = row[0].strip()
            # 遍历第2到16列(对应索引1到15)的Proxy地址
            for proxy in row[1:16]:
                cleaned_proxy = proxy.strip()
                if cleaned_proxy:  # 跳过空单元格
                    user_proxies[username].add(cleaned_proxy)

# 准备输出内容
output_rows = []
# 如果有表头,先加入表头
if 'header' in locals():
    output_rows.append(header)

# 遍历所有用户,整理去重后的Proxy列表
for username in user_proxies:
    proxies = list(user_proxies[username])
    # 补全到15个元素,保持列数和原CSV一致
    proxies += [''] * (15 - len(proxies))
    # 组合成一行数据
    output_rows.append([username] + proxies[:15])  # 确保最多15个Proxy,对应原列数

# 写入合并后的CSV3
with open("csv3.csv", mode='w', newline='', encoding='utf-8') as file:
    csv_writer = csv.writer(file)
    csv_writer.writerows(output_rows)

使用说明

  • 文件路径:把input_csvs里的文件名替换成你实际的CSV1和CSV2路径。
  • 表头处理:如果你的CSV文件没有表头,直接删除代码中读取表头的相关行即可。
  • 编码调整:如果你的CSV是其他编码(比如gbk),把encoding='utf-8'改成对应的编码格式。
  • 去重逻辑:集合会自动帮我们去除重复的Proxy地址,不用额外写判断。

这样处理后,生成的CSV3就会保留所有用户,每个用户的Proxy地址都是去重后的结果,完美符合你的需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:47:29