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

如何用Python筛选CSV指定列并保存、提取SourceFile列文件名

Python实现exiftool CSV文件处理方案

前置依赖

如果选择pandas方案,需先安装pandas库,执行命令:pip install pandas
如果选择无额外依赖方案,无需安装任何第三方库。


方案1:pandas实现(适合大体积CSV,处理效率更高)

import pandas as pd
import os

# 替换为你的实际文件路径
input_csv_path = "你的原始exiftool生成的CSV文件路径.csv"
output_csv_path = "处理后要保存的文件路径.csv"

# 仅读取需要的3列,避免加载多余数据占用内存
df = pd.read_csv(input_csv_path, usecols=["SourceFile", "Description", "ObjectName"])

# 提取SourceFile列的纯文件名,自动适配Windows、macOS、Linux路径格式
df["SourceFile"] = df["SourceFile"].apply(os.path.basename)

# 导出结果,index=False表示不输出pandas自动生成的行号,utf-8-sig编码兼容Excel打开不乱码
df.to_csv(output_csv_path, index=False, encoding="utf-8-sig")

方案2:标准库csv实现(无额外依赖,适合小体积CSV)

import csv
import os

# 替换为你的实际文件路径
input_path = "你的原始exiftool生成的CSV文件路径.csv"
output_path = "处理后要保存的文件路径.csv"
target_columns = ["SourceFile", "Description", "ObjectName"]

with open(input_path, 'r', encoding='utf-8') as infile, \
     open(output_path, 'w', newline='', encoding='utf-8-sig') as outfile:
    reader = csv.DictReader(infile)
    writer = csv.DictWriter(outfile, fieldnames=target_columns)
    # 写入表头
    writer.writeheader()
    for row in reader:
        # 提取纯文件名
        row["SourceFile"] = os.path.basename(row["SourceFile"])
        # 仅保留指定列写入
        writer.writerow({col: row[col] for col in target_columns})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:54:03