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

如何在Python中将子目录下以_开头的文件名读取到变量中?

批量获取子目录中下划线开头的文件名并作为函数参数

Shell(Bash)实现

直接用find命令递归查找目标文件,结合数组存储后遍历调用函数:

# 定义处理文件的自定义函数
process_file() {
    echo "正在处理文件: $1"
    # 此处添加你的业务逻辑,比如读取文件内容、执行分析脚本等
}

# 递归查找所有子目录中以下划线开头的文件,存入数组
mapfile -t target_files < <(find . -type f -name "_*")

# 遍历数组,将每个文件名作为参数传入函数
for file in "${target_files[@]}"; do
    process_file "$file"
done
  • find . -type f -name "_*":递归遍历当前目录下所有子目录,筛选出类型为文件、文件名以_开头的目标文件
  • mapfile -t:将find的输出结果逐行存入target_files数组,避免文件名含空格时出现拆分问题
  • 遍历数组时用双引号包裹变量,确保特殊字符(空格、换行等)的文件名能被正确处理

Python实现

通过os.walk遍历目录树,收集符合条件的文件路径后批量调用函数:

import os

def process_file(file_path):
    print(f"正在处理文件: {file_path}")
    # 此处添加你的业务逻辑,比如解析文件内容、调用处理接口等

# 收集所有目标文件的完整路径
target_files = []
for root, _, files in os.walk('.'):
    for file in files:
        if file.startswith('_'):
            target_files.append(os.path.join(root, file))

# 逐个传入函数处理
for file in target_files:
    process_file(file)
  • os.walk('.'):遍历当前目录及所有子目录,返回每个目录的根路径、子目录列表、文件列表
  • file.startswith('_'):筛选文件名以_开头的文件
  • os.path.join(root, file):拼接得到文件的完整绝对路径,避免路径混乱

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:01:00