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

Python3加载CSV到字典并在指定列搜索特定条目的实现问题

实现方案

1. 先修正CSV文件笔误

你提供的原始CSV第三行存在分隔符错误,需要把2021-10-01_09-05-55,.jpg里的逗号替换为分号,修改后第三行应为:

C:\Users\Dreampeace;2021-10-01_09-05-55;.jpg;2021-10-01

否则读取时会出现字段错位问题。

2. 读取CSV存入loaded_csv_data字典

这里使用with上下文管理器操作文件,无需手动关闭文件,更稳妥。我们用Current Filename作为字典的键,整行数据作为值,后续搜索效率更高:

import os
import csv

# 替换为你实际的CSV文件所在目录路径
Directory_History_csv = "你的CSV目录路径"
csv_file_path = os.path.join(Directory_History_csv, "history-test.csv")

loaded_csv_data = {}
with open(csv_file_path, mode="r", encoding="utf8") as f:
    reader = csv.DictReader(f, delimiter=";")
    for row in reader:
        filename = row["Current Filename"]
        loaded_csv_data[filename] = row

3. 实现搜索判断功能

根据你的需求,提供两种匹配逻辑的实现:

精确匹配(目标字符串和Current Filename完全一致才返回True)

def check_filename_exact(target: str) -> bool:
    return target in loaded_csv_data

模糊匹配(只要Current Filename包含目标字符串就返回True)

def check_filename_fuzzy(target: str) -> bool:
    for filename in loaded_csv_data:
        if target in filename:
            return True
    return False

使用示例

# 精确匹配测试
print(check_filename_exact("2021-10-06_15-10-24")) # 输出True
print(check_filename_exact("test_file")) # 输出False

# 模糊匹配测试
print(check_filename_fuzzy("2021-10-03")) # 输出True
print(check_filename_fuzzy("2022")) # 输出False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:24:04