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
相关产品推荐
相关产品推荐

