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

如何使用glob匹配目录下无文件扩展名的文件

匹配固定开头、无扩展名文件的glob实现方案

Python 环境实现

直接用glob加简单过滤就能100%精准拿到目标文件,不会误抓带扩展名的同前缀文件:

import glob
import os

# 把下面的fixed_prefix替换成你这批文件共同的开头单词即可
match_pattern = "./fixed_prefix*"
# 先拿所有同前缀文件,再过滤掉文件夹、带扩展名的项
result = [
    file_path for file_path in glob.glob(match_pattern)
    if os.path.isfile(file_path) and os.path.splitext(file_path)[1] == ""
]

代码里加os.path.isfile判断是为了排除同名文件夹,os.path.splitext会自动拆分文件名和扩展名,返回的扩展名部分为空就说明文件没有任何后缀,哪怕文件名中间带.(比如fixed_prefix_2024.v2)也不会误判,只有最后一个.后的内容才会被识别为扩展名。
如果确定当前目录下没有同前缀的带后缀文件、也没有同名文件夹,可以直接简化成glob.glob("./fixed_prefix*"),不需要额外过滤。

Shell 命令行环境实现

如果是在终端里用glob做匹配,Bash/Zsh 下可以直接用下面的规则匹配:

  • 仅列出所有符合要求的文件:
    ls fixed_prefix!(*.*)
  • 如果需要给这批文件批量补上.txt后缀,可以直接执行循环:
# 先开启extglob支持,部分环境默认没开需要先执行这行
shopt -s extglob
for file in fixed_prefix!(*.*)
do
  if [ -f "$file" ]; then
    mv "$file" "$file.txt"
  fi
done

提示:如果是Fish shell,匹配规则要写成fixed_prefix*,加个判断过滤带.的文件即可,语法和Bash略有区别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:54:37