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

Python脚本首次运行结束后如何清理内存 解决TK部件重复运行数据累加问题

问题解决方案

核心诱因:存储爬取结果的容器(通常为列表)被定义为全局变量/在爬取逻辑外部初始化,多次触发爬取任务时未清空旧数据,直接往容器内追加内容导致数据叠加。

  • 方案1(最推荐):将数据容器改为爬取函数内部变量
    把用于存储爬取条目的列表(比如job_list)的初始化逻辑放到爬取任务函数内部,每次触发爬取任务时都会生成全新的空容器,旧容器会被Python自动回收,无需手动清理内存。参考代码:
    # 错误写法:全局变量,进程不关闭就会一直保留旧数据
    # job_list = []
    
    def crawl(keyword, file_name):
        # 正确写法:每次调用函数生成新的空列表
        job_list = []
        # 后续爬取逻辑,向job_list追加新获取的条目
        # 写入CSV文件逻辑
    
  • 方案2:每次启动爬取前手动清空全局容器
    如果业务逻辑必须使用全局变量存储数据,就在每次爬取任务启动前调用容器的清空方法:
    job_list = []
    
    def crawl(keyword, file_name):
        # 爬取启动前先清空旧数据
        job_list.clear()
        # 后续爬取、写入CSV逻辑
    
  • 方案3:CSV生成完成后主动释放内存
    若爬取数据量较大需要及时释放内存,可以在CSV写入完成后手动删除存储变量,触发Python垃圾回收:
    import gc
    
    # CSV文件写入完成后执行
    del job_list
    gc.collect()
    

额外排查点:确认写CSV文件时的打开模式为'w'(覆盖写入),不要使用'a'(追加写入),避免磁盘文件层面的旧数据残留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:24:03