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

如何用os.walk()结合CSV文件递归搜索指定文件内容?

我来帮你补全这个CSV内容搜索的代码!结合你的需求,我整理了一份完整的实现,包含递归遍历目录、CSV文件读取和目标内容匹配的逻辑,你可以直接参考使用:

完整代码实现
import os
import csv

# 定义要搜索的目标内容
TARGET_STRINGS = ["XZOXNEOXXTWX", "YOEYTWOYZYNY"]
# 定义要遍历的根目录
ROOT_DIR = "你的rootDir路径"  # 替换成实际的根目录路径

def search_csv_for_targets(root_dir):
    # 递归遍历目录下的所有文件
    for dirpath, _, filenames in os.walk(root_dir):
        for filename in filenames:
            # 只处理CSV文件
            if filename.lower().endswith(".csv"):
                file_path = os.path.join(dirpath, filename)
                print(f"正在检查文件: {file_path}")
                
                try:
                    # 打开CSV文件,处理编码问题
                    with open(file_path, 'r', encoding='utf-8', newline='') as csvfile:
                        reader = csv.reader(csvfile)
                        # 遍历每一行,记录行号
                        for row_num, row in enumerate(reader, start=1):
                            # 遍历该行的每个单元格
                            for cell in row:
                                # 检查当前单元格是否包含目标字符串
                                for target in TARGET_STRINGS:
                                    if target in cell:
                                        print(f"找到匹配内容!")
                                        print(f"文件路径: {file_path}")
                                        print(f"行号: {row_num}")
                                        print(f"匹配内容: {target}")
                                        print("-" * 50)
                except Exception as e:
                    print(f"处理文件 {file_path} 时出错: {str(e)}")

if __name__ == "__main__":
    search_csv_for_targets(ROOT_DIR)
关键部分说明
  • 递归遍历目录:通过os.walk()获取目录下的所有文件路径,dirpath是当前遍历的目录,filenames是该目录下的所有文件名。
  • 过滤CSV文件:通过filename.lower().endswith(".csv")确保只处理CSV格式的文件,避免无效操作。
  • CSV内容读取:使用csv.reader逐行读取CSV文件,enumerate(reader, start=1)用来记录行号(从1开始更符合日常阅读习惯)。
  • 目标内容匹配:遍历每个单元格,检查是否包含目标字符串,找到匹配时输出详细信息,方便定位。
  • 异常处理:捕获文件读取时的异常(比如权限问题、编码错误),避免程序崩溃。

你只需要把代码里的ROOT_DIR替换成实际要遍历的根目录路径,运行后就能自动递归搜索所有CSV文件,找到你需要的两个目标内容啦!

内容的提问来源于stack exchange,提问作者KXA.Pytho3

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:57:41