如何用Python将文件夹列表与检测结果输出到CSV不同列?
解决方案
原代码存在的问题
- 变量命名冲突:循环中重复使用
files、path变量,导致逻辑混乱 - 路径判断错误:
os.path.exists不支持通配符,"*\\raw.txt"写法无法正确检测文件 - 逻辑分离:两次循环分别处理文件夹列表和文件检测,无法将两者对应写入CSV同一行
- 未区分文件和文件夹:
os.listdir会列出所有文件和文件夹,没有只筛选目标目录
修正后的代码
import os import csv # 替换为存放200+文件夹的父目录路径 root_dir = "你的父目录路径" # 打开CSV文件准备写入 with open("folder_check.csv", "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) # 写入表头 writer.writerow(["文件夹名称", "是否存在raw.txt"]) # 遍历根目录下的所有一级文件夹 for entry in os.scandir(root_dir): if entry.is_dir(): # 拼接当前文件夹下的raw.txt路径 raw_txt_path = os.path.join(entry.path, "raw.txt") # 判断文件是否存在 has_raw = "Yes" if os.path.exists(raw_txt_path) else "No" # 写入一行对应数据 writer.writerow([entry.name, has_raw])
关键说明
- 用
os.scandir替代os.listdir,可高效判断是否为目录 os.path.join拼接路径,避免手动写分隔符导致的跨平台问题- 直接将文件夹名和检测结果配对写入,确保CSV每行两列对应正确
- 若需要遍历所有层级子目录,可替换为
os.walk,但需注意只处理目录节点
内容的提问来源于stack exchange,提问作者Volcano
相关产品推荐
相关产品推荐

