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

如何用os库匹配目录名称并结合Pandas生成TXT文件存在判定表格

解决方案

步骤1:从完整路径提取主目录名称

你可以通过相对路径拆分的方式,从os.walk返回的完整路径里提取对应的主目录名:先把完整路径转换成相对于Data目录的相对路径,再拆分路径的第一个部分,就能得到Folder1/Folder2这类主目录名称。

步骤2:整合逻辑并生成表格

下面是完整的实现代码,已经帮你整合了遍历、匹配和生成表格的逻辑:

import os
import pandas as pd

# 定义Data目录的路径,避免重复书写
data_dir = r'C:\Users\Name\New\Data'

# 获取35个主目录的列表(优化了原代码的while循环写法)
main_folders = os.listdir(data_dir)

# 用集合存储存在txt文件的主目录(自动去重,避免重复记录同一个主目录)
has_txt_folders = set()

# 遍历所有目录和文件
for root, dirs, files in os.walk(data_dir):
    for file in files:
        if file.endswith('.txt'):
            # 计算当前路径相对于Data目录的相对路径
            rel_path = os.path.relpath(root, data_dir)
            # 拆分相对路径,第一个元素就是主目录名称(os.sep自动适配系统路径分隔符)
            main_folder = rel_path.split(os.sep)[0]
            # 将主目录加入集合
            has_txt_folders.add(main_folder)

# 生成每个主目录的"是/否"标记
result = []
for folder in main_folders:
    result.append({
        '主目录名称': folder,
        '是否包含含txt文件的子目录': '是' if folder in has_txt_folders else '否'
    })

# 用pandas生成表格并输出
df = pd.DataFrame(result)
print(df)
# 如果需要保存为Excel文件,取消下面注释即可
# df.to_excel('目录检查结果.xlsx', index=False)

代码说明

  • 用os.path.relpath获取相对路径,搭配os.sep拆分路径,能适配Windows和Linux的不同路径分隔符,避免硬编码\导致的兼容性问题。
  • 使用集合has_txt_folders是因为同一个主目录下可能有多个子目录包含txt文件,集合会自动去重,无需额外处理重复记录。
  • 最终生成的DataFrame可以直接打印查看,也能保存为Excel文件方便后续整理。

内容的提问来源于stack exchange,提问作者geoscience-rocks12345

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:17:22