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

Python循环生成CSV文件累加上一轮循环数据的问题如何解决

问题原因

存储单条循环数据的列表name在for循环外部初始化,每次循环都会往同一个列表里追加新数据,导致后续生成的CSV自动包含前面所有循环的内容。

修复方案

把name = []这行代码移动到for循环内部的第一行,每次循环开始时创建全新的空列表存储当前循环的数据,不会保留历史内容。
修改后的核心代码片段如下:

# 冗余代码可删除:df = pd.read_csv(r'/Users/Documents/tes.csv') 该行读取结果会被下一行覆盖
df = pd.read_csv(r'/Users/Documents/date.csv')
for row in df.itertuples(index=True):
    name = []  # 每次循环先初始化空列表,核心修改点
    # 剩下的原有逻辑保持不变即可
    column = row.stick
    l= driver.find_element (By.CSS_SELECTOR, "#pop_mm_stock")
    l.clear()
    l.send_keys(column)  

    column1 = row.date
    cal1= driver.find_element (By.CSS_SELECTOR, "#pop_bas_from")
    cal1.clear()
    cal1.send_keys(column1)
    print(column)
    n={'n': column}          
    name.append(n)       

    cal2= driver.find_element (By.CSS_SELECTOR, "#pop_bas_to")
    cal2.clear()
    cal2.send_keys(column1)
    print(column1)
    n={'n': column1}
    name.append(n)

    show1=driver.find_element (By.CLASS_NAME, "button")
    a.move_to_element(show1).click().perform()
    time.sleep(5)
                                   
    head_up=WebDriverWait(driver, 2).until(EC.presence_of_element_located((By.XPATH, "/html[1]/body[1]/div[8]/div[1]/table[2]")))
    print(head_up.text)
    n={'n': head_up.text}
    name.append(n)

    pop_up=WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.XPATH, "/html[1]/body[1]/div[8]/div[1]/div[1]/table[1]")))
    time.sleep(3)
    print(pop_up.text)
    n={'n': pop_up.text}
    name.append(n)
            
    d=pd.DataFrame(name)
    d.to_csv(r'' + str(column) + str(column1) +  '_AVR.csv', index=False, header=False)
    driver.back()

如果你需要每个CSV文件里的行索引保持全局连续(和你贴的期望输出一致,第一个文件索引为0、1、2、3,第二个接着从4开始计数),可以额外增加全局计数变量,代码调整如下:

df = pd.read_csv(r'/Users/Documents/date.csv')
global_index = 0  # 全局计数变量,在循环外初始化
for row in df.itertuples(index=True):
    name = []
    # 原有采集数据的逻辑不变,把数据存入name列表
    
    d = pd.DataFrame(name)
    # 重设索引为全局连续值
    d.index = range(global_index, global_index + len(d))
    global_index += len(d)
    # 导出时开启index输出
    d.to_csv(r'' + str(column) + str(column1) +  '_AVR.csv', index=True, header=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:15:09