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

按指定规格拆分换行分隔的代理列表并导出至文本文件

实现代理列表的批量拆分与导出

嘿,我来帮你把这个代理拆分的功能补全!你已经搞定了统计数量的部分,接下来咱们把拆分、去重导出的逻辑加上,完全满足你的需求:自定义生成不同大小的子列表,同一代理绝不重复出现在多个文件里。

完整实现代码

import os

def split_proxy_list():
    # 读取代理文件
    filename = input('Enter a file name: ')
    if not os.path.exists(filename):
        print(f"Error: 文件 {filename} 不存在!")
        return
    
    # 读取所有代理,去除空行
    with open(filename, 'r') as f:
        proxies = [line.strip() for line in f if line.strip()]
    
    total_proxies = len(proxies)
    print(f"总共读取到 {total_proxies} 个有效代理")
    
    # 获取用户需求:各大小子列表的数量
    count_10 = int(input("请输入需要生成多少个大小为10的子列表:"))
    count_25 = int(input("请输入需要生成多少个大小为25的子列表:"))
    count_50 = int(input("请输入需要生成多少个大小为50的子列表:"))
    
    # 计算总需要的代理数量
    required = count_10 * 10 + count_25 * 25 + count_50 * 50
    if required > total_proxies:
        print(f"Error: 需要的代理总数({required})超过现有代理数({total_proxies}),无法完成拆分!")
        return
    
    # 创建输出目录(可选,避免文件混乱)
    output_dir = "split_proxies"
    os.makedirs(output_dir, exist_ok=True)
    
    # 生成大小为10的子列表
    for i in range(count_10):
        # 从列表头部取10个代理,同时移除这些代理避免重复
        group = proxies[:10]
        proxies = proxies[10:]
        # 写入文件
        with open(os.path.join(output_dir, f"proxy_group_10_{i+1}.txt"), 'w') as f:
            f.write('\n'.join(group))
        print(f"已生成:proxy_group_10_{i+1}.txt")
    
    # 生成大小为25的子列表
    for i in range(count_25):
        group = proxies[:25]
        proxies = proxies[25:]
        with open(os.path.join(output_dir, f"proxy_group_25_{i+1}.txt"), 'w') as f:
            f.write('\n'.join(group))
        print(f"已生成:proxy_group_25_{i+1}.txt")
    
    # 生成大小为50的子列表
    for i in range(count_50):
        group = proxies[:50]
        proxies = proxies[50:]
        with open(os.path.join(output_dir, f"proxy_group_50_{i+1}.txt"), 'w') as f:
            f.write('\n'.join(group))
        print(f"已生成:proxy_group_50_{i+1}.txt")
    
    print("所有子列表生成完成!")

if __name__ == "__main__":
    split_proxy_list()

代码功能说明

  • 读取代理:先读取文件,过滤掉空行,确保只处理有效代理
  • 需求校验:先计算用户需要的总代理数,如果超过现有数量会直接提示错误,避免崩溃
  • 去重逻辑:每次抽取子列表后,从原列表中移除已使用的代理,保证同一代理不会出现在多个文件里
  • 文件导出:自动创建split_proxies目录存放所有子列表,文件命名清晰(比如proxy_group_10_3.txt表示第3个10条的代理列表)
  • 友好提示:每一步都有打印提示,告诉你哪个文件已经生成

使用方法

  1. 把你的代理列表保存成文本文件(每行一个代理)
  2. 运行脚本,输入代理文件的路径
  3. 按照提示输入需要生成的各大小子列表数量,回车确认即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:49:07