Python中找文件名推荐用pathlib(简洁)、os.listdir(灵活)或glob(通配符快),注意区分文件名与完整路径,需用basename或name/stem提取。

在Python中找文件名,核心是遍历目录、匹配条件、提取名称。不一定要用复杂工具,标准库里的 os 和 pathlib 就够用,关键是选对方法、写清逻辑。
pathlib 是 Python 3.4+ 的官方路径操作模块,读起来像自然语言,适合大多数查找场景。
.py 文件名(不含路径):from pathlib import Path<br>names = [f.name for f in Path(".").glob("*.py")]names = [f.name for f in Path(".").rglob("*report*.xlsx")]
names_no_ext = [f.stem for f in Path(".").glob("data_*.csv")]
适合需要自定义规则的情况,比如按长度、是否含数字、大小写组合等筛选。
import os<br>names = [n for n in os.listdir(".") if n and n[0].isupper()]names = [n for n in os.listdir(".") if ".txt" in n and n.replace(".txt", "").replace("-", "").isdigit() and len(n) >= 12]
如果你熟悉 shell 的 * 和 ?,glob 上手最快,支持递归(需加 **)。
里面有2个文件夹。其中这个文件名是:finishing,是我项目还没有请求后台的数据的模拟写法。请求后台数据之后,瀑布流的js有一点点变化,放在文件名是:finished。变化在于需要穿参数到后台,和填充的内容都用后台的数据填充。看自己项目需求来。由于chrome模拟器是不允许读取本地文件json的,所以如果你要进行测试,在hbuilder打开项目就可以看到效果啦,或者是火狐浏览器。
92
立即学习“Python免费学习笔记(深入)”;
import glob<br>names = [os.path.basename(p) for p in glob.glob("logs/**/*/*.log", recursive=True)].cfg 的文件:names = [os.path.basename(p) for p in glob.glob("?.[0-9]*.cfg")]
很多人混淆这两者。真正要的“文件名”通常指 basename(不含目录),不是全路径。
glob.glob("data/*.csv") 返回的是 "data/report.csv" —— 这是路径,不是文件名[os.path.basename(p) for p in glob.glob("data/*.csv")] 或用 Path(p).name
Path(p).stem 或 os.path.splitext(os.path.basename(p))[0]
基本上就这些。选 pathlib 写得清爽,用 glob 匹配快,靠 os.listdir 控制细——根据你手头的条件挑一个就行。
以上就是如何在Python中找到想要的文件名的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号