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

Python循环处理多文档导出CSV:如何避免内容覆盖实现逐行追加?

解决循环写入CSV时覆盖内容的问题

你的核心问题是每次循环调用df.to_csv()时,默认使用**写入模式('w')**直接覆盖了原有文件。要实现追加写入,只需修改两个关键参数,并处理表头重复的问题:

关键修改点

  • 添加mode='a':将文件打开模式设为追加,新数据会追加到文件末尾
  • 控制表头输出:只在第一次写入时生成表头,后续循环跳过表头,避免重复

修改后的完整代码

from pdfminer.high_level import extract_text
import glob
import pandas as pd
import os  # 导入os模块检查文件是否存在

for selectedfile in glob.glob(r'C:\Users\...\*.pdf'):
    text = extract_text(selectedfile)

    Y = set(text)
    Z = []
    Znew = []
    for val in Y:
        occurrences = wordlist2.count(val)
        if occurrences > 50:  # 定义最小出现次数
            Z.append(val)
            Znew.append(occurrences)

    # 别用内置关键字dict当变量名,改成data_dict避免冲突
    data_dict = {'Stem': Z, 'Count': Znew}
    df = pd.DataFrame(data_dict)
    
    # 判断文件是否存在,决定是否写表头
    file_exists = os.path.exists('Exported list.csv')
    # 追加模式写入,第一次写表头,后续跳过
    df.to_csv('Exported list.csv', 
              mode='a', 
              header=not file_exists, 
              index=True, 
              encoding='utf-8')

额外说明

  • 把dict改成data_dict是因为dict是Python的内置类型,用作变量名可能引发意外问题
  • 确保wordlist2是在循环外定义好的全局变量,或能在循环内正确获取到统计所需的词表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:15:18