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

过滤后向现有CSV文件添加新行的技术实现需求

看起来你需要处理CSV文件:先过滤源文件的内容,再把符合条件的行追加到现有CSV里。下面用Python给你一个实用的实现方案,你可以根据实际的代码注释规则调整过滤逻辑。

解决方案:过滤CSV并追加新行到现有文件

核心思路

  1. 读取源CSV文件,用自定义规则筛选符合要求的行
  2. 以追加模式打开目标CSV文件,将过滤后的行写入

代码实现

import csv

# 自定义过滤规则函数(请根据实际需求修改这里的判断条件)
def should_keep_row(row):
    # 示例规则1:只保留TypeIndicator为"10"的记录
    if row["TypeIndicator"] != "10":
        return False
    # 示例规则2:排除Indicator字段为"u"的记录
    if row["Indicator"] == "u":
        return False
    # 你可以在这里添加更多规则,比如判断ResultEntry的数值范围等
    return True

def process_csv(source_path, target_path):
    # 读取源CSV并过滤行
    with open(source_path, mode='r', newline='', encoding='utf-8') as source_file:
        # 用DictReader可以通过列名访问字段,更易读
        csv_reader = csv.DictReader(source_file)
        # 筛选符合规则的行
        filtered_rows = [row for row in csv_reader if should_keep_row(row)]

    # 追加到目标CSV文件
    with open(target_path, mode='a', newline='', encoding='utf-8') as target_file:
        # 确保写入的列和源文件一致
        csv_writer = csv.DictWriter(target_file, fieldnames=csv_reader.fieldnames)
        # 注意:如果目标CSV文件还没有表头,需要取消下面这行注释来写入表头
        # csv_writer.writeheader()
        # 写入过滤后的所有行
        csv_writer.writerows(filtered_rows)

if __name__ == "__main__":
    # 替换成你的源文件和目标文件路径
    SOURCE_CSV = "source.csv"
    TARGET_CSV = "existing.csv"
    process_csv(SOURCE_CSV, TARGET_CSV)

代码说明

  • should_keep_row函数:这是你定义过滤规则的核心区域,示例里的规则是保留TypeIndicator为"10"且Indicator不为"u"的行,你可以完全替换成代码注释里的实际规则,比如判断ResultName、ResultEntry的数值范围等。
  • 文件读取与写入:用Python内置的csv模块处理,避免手动解析CSV的复杂逻辑,同时保证输出格式符合标准。
  • 追加模式:打开目标文件时用mode='a',这样不会覆盖原有内容,只会在文件末尾添加新行。

针对你的源数据的示例结果

用示例规则过滤后,会得到以下行:

"111","10","S","","125.234"
"111","10","Sn","","0.034"
"111","10","Mo","","0.307"
"111","10","P","","1.593"
"111","10","Zn","","0.126"

这些行会被追加到你的现有CSV文件中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:20:13